在 PHP 中使用 ImageMagick 将 SVG 光栅化为 PNG 时,为什么会出现 NoDecodeDelegateForThisImageFormat?

ivk*_*mer 5 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;
Run Code Online (Sandbox Code Playgroud)

但第二行有错误:

NoDecodeDelegateForThisImageFormat `' @ error/blob.c/BlobToImage/361
Run Code Online (Sandbox Code Playgroud)

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

ivk*_*mer 5

这篇文章对我帮助很大:https://web.archive.org/web/20140210005135/https ://www.elxsy.com/2009/07/installing-imagemagick-on-windows-and-using-with-php -imagick/

准确来说这一段:

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

从来没有这样做来安装 php 扩展。


Awa*_*rni 5

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

$svg = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>'.$svg;
Run Code Online (Sandbox Code Playgroud)

这样做你就会享受到:-)