由于未找到委托,将 SVG 转换为另一种格式失败
Converting SVG to another format fail due to delegate not being found
我有 PHP 代码 运行 Debian stretch with ImageMagick。它尝试将 SVG 转换为另一种格式。这是它的开始
$im = new Imagick();
$im->readImageBlob($svg);
变量 $svg
在字符串中包含有效的 SVG 代码。如果我将此字符串复制到扩展名为 .svg
的文本文件中,那么它就可以正常打开。但是 readImageBlob
抛出异常 no delegate for this image format
.
我看到通过向系统安装更多软件包解决了类似的问题。但我已经安装了 libxml2-dev
、librsvg2-bin
、libmagickcore-6.q16-3-extra
和 libfreetype6-dev
。
我不知道我还缺少什么。
我不得不在 $svg
前面加上 <?xml version="1.0" ?>
,它起作用了。它至少确实读取了 SVG 并尝试创建 png/jpeg。不过,在转换过程中有一段文字放错了地方。所以总的来说任务还是失败了。但这是另一个问题。我认为问题得到了解答。
从 运行 下面的命令中 PHP exec()
你得到了什么
convert -list format
SVG 行应显示为 RSVG 或 MSVG/XML。它表明了吗?如果您需要 RSVG,则必须安装该委托,然后重新安装 Imagemagick,以便 Imagemagick 可以找到它。 Imagemagick 由 Imagick 使用。它们不一样。 RSVG 委托可以通过 Google 搜索或从 linuxfromscratch.org/blfs/view/svn/general/librsvg.html 找到。您的 svg 文件似乎在 Imagemagick 中使用 RSVG 为我正确呈现,但我不确定它应该是什么样子。它只是一组水平线。
我不太了解如何使用 readImageBlob()。只需使用 readImage(),您可以在其中提供保存的 svg 图像文件的路径。那应该有效。尝试一下,看看你得到了什么。
这是我在 Imagemagick 6.9.10.3 Q16 中使用 RSVG 2.42.2 得到的结果 Mac OSX 我将您的文本保存在一个名为 test.svg.[=15 的文件中=]
convert test.svg test.png
如果我强制使用 Imagemagick MSVG/XML,它看起来就不那么好了。
convert MSVG:test.svg test2.png
我有 PHP 代码 运行 Debian stretch with ImageMagick。它尝试将 SVG 转换为另一种格式。这是它的开始
$im = new Imagick();
$im->readImageBlob($svg);
变量 $svg
在字符串中包含有效的 SVG 代码。如果我将此字符串复制到扩展名为 .svg
的文本文件中,那么它就可以正常打开。但是 readImageBlob
抛出异常 no delegate for this image format
.
我看到通过向系统安装更多软件包解决了类似的问题。但我已经安装了 libxml2-dev
、librsvg2-bin
、libmagickcore-6.q16-3-extra
和 libfreetype6-dev
。
我不知道我还缺少什么。
我不得不在 $svg
前面加上 <?xml version="1.0" ?>
,它起作用了。它至少确实读取了 SVG 并尝试创建 png/jpeg。不过,在转换过程中有一段文字放错了地方。所以总的来说任务还是失败了。但这是另一个问题。我认为问题得到了解答。
从 运行 下面的命令中 PHP exec()
你得到了什么convert -list format
SVG 行应显示为 RSVG 或 MSVG/XML。它表明了吗?如果您需要 RSVG,则必须安装该委托,然后重新安装 Imagemagick,以便 Imagemagick 可以找到它。 Imagemagick 由 Imagick 使用。它们不一样。 RSVG 委托可以通过 Google 搜索或从 linuxfromscratch.org/blfs/view/svn/general/librsvg.html 找到。您的 svg 文件似乎在 Imagemagick 中使用 RSVG 为我正确呈现,但我不确定它应该是什么样子。它只是一组水平线。
我不太了解如何使用 readImageBlob()。只需使用 readImage(),您可以在其中提供保存的 svg 图像文件的路径。那应该有效。尝试一下,看看你得到了什么。
这是我在 Imagemagick 6.9.10.3 Q16 中使用 RSVG 2.42.2 得到的结果 Mac OSX 我将您的文本保存在一个名为 test.svg.[=15 的文件中=]
convert test.svg test.png
如果我强制使用 Imagemagick MSVG/XML,它看起来就不那么好了。
convert MSVG:test.svg test2.png