为什么在使用PHP中的ImageMagick将SVG转换为PNG时,我会得到NoDecodeDelegateForThisImageFormat?

时间:2013-09-06 15:55:50

标签: svg imagemagick

我正在尝试使用以下代码将svg图像转换为png:

$image = new Imagick();
$image->readImageBlob($_POST['svgcode']);
$image->setImageFormat("png24");
$image->resizeImage(600, 600, imagick::FILTER_LANCZOS, 1);
header('Content-type: image/png');
echo $image;

但第二行有一个错误:

NoDecodeDelegateForThisImageFormat `' @ error/blob.c/BlobToImage/361

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

您的svg的第一行必须是<?xml version="1.0" encoding="UTF-8" standalone="no"?>

$svg = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>'.$svg;

做到这一点你会很享受: - )

答案 1 :(得分:3)

这篇文章给了我很多帮助http://www.elxsy.com/2009/07/installing-imagemagick-on-windows-and-using-with-php-imagick/

确切地说这篇文章:

  

这是重要的部分,我花了半个小时试图让它工作.. grrrr ..你需要重新启动你的PC才能使库生效。

从未在安装php扩展程序时这样做。