我想使用PHP使用ImageMagick将SVG转换为PNG。我已经在XAMPP上安装了ImageMagick,并使用phpinfo()对其进行了验证,但仍然无法生成图像。这是我的代码:

$svg = file_get_contents($svg_file);
//echo $svg;
$im = new Imagick();
//$im->setBackgroundColor(new ImagickPixel('transparent'));
// $svg = str_replace(array("color1","color2"),array("red","lightblue"),$svg);
$im->readImageBlob($svg);
//$im->setImageFormat("png32");
$im->setImageFormat("png24");
// $im->resizeImage(720, 445, imagick::FILTER_LANCZOS, 1);
// $im->adaptiveResizeImage(720, 445);
$im->writeImage($png_file);
header('Content-type: image/png');
echo $im;
$im->clear();
$im->destroy();

最佳答案

阅读此Imagick on Windows 8 xampp

我创建了这个示例并为我工作,只需下载blank-us-map.svg

<?php

$usmap = 'blank-us-map.svg';
$im = new Imagick();
$svg = file_get_contents($usmap);

$im->readImageBlob($svg);

$im->setImageFormat("png24");
$im->resizeImage(720, 445, imagick::FILTER_LANCZOS, 1);  /*Optional, if you need to resize*/

$im->writeImage('blank-us-map.png');

header('Content-type: image/png');
echo $im;

$im->clear();
$im->destroy();

?>

关于php - 如何在PHP中使用ImageMagick将SVG转换为PNG?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29994680/

10-17 03:00