在PHP中使用ImageMagick将SVG光栅化为PNG时,为什么要获取NoDecodeDelegateForThisImageFormat?

在PHP中使用ImageMagick将SVG光栅化为PNG时,为什么要获取NoDecodeDelegateForThisImageFormat?,svg,imagemagick,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; 但第二行有一个错误

我正在尝试使用以下代码将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

我怎样才能解决这个问题呢?

这篇文章对我帮助很大

确切地说,这件作品:

这是最重要的部分,我花了整整半个小时试图让它发挥作用。。grrrr。。您需要重新启动电脑才能生效


安装php扩展时从未这样做过。

svg的第一行必须是

$svg='.$svg;

这样做,您将享受:-)

您是否安装了支持svg的imagick?是的,我想正是因为这个原因:您可能需要下载并重新安装imagick和Awais,谢谢您的评论。我刚重新启动电脑,问题就解决了。
$svg = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>'.$svg;