我已经在上运行了PHP代码。它试图将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。
我不知道我还错过了什么。
发布于 2018-07-02 17:56:06
从PHP ()运行以下命令可以得到什么?
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图像文件。那应该管用。试试,看看你能得到什么。
以下是我在Imagemagick6.9.10.3 Q16 Mac中使用RSVG2.42.2获得的信息,如果我已经将您的文本保存在一个名为test.svg的文件中。
convert test.svg test.png

如果我强制使用Imagemagick /XML,它看起来就不那么好了。
convert MSVG:test.svg test2.png

发布于 2018-06-28 13:47:04
我不得不在$svg上加上<?xml version="1.0" ?>,然后它就成功了。它至少在SVG中读取并尝试创建png/jpeg。不过,在转换过程中,有一段文字会被错位。因此,总体来说,这项任务仍未完成。但这是另一个问题。我想这个问题已经回答了。
https://stackoverflow.com/questions/51082802
复制相似问题