首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于找不到委托,将SVG转换为另一种格式失败

由于找不到委托,将SVG转换为另一种格式失败
EN

Stack Overflow用户
提问于 2018-06-28 12:21:43
回答 2查看 1K关注 0票数 1

我已经在上运行了PHP代码。它试图将SVG转换为另一种格式。这是怎么开始的

代码语言:javascript
复制
$im = new Imagick();
$im->readImageBlob($svg);

变量$svg在字符串中包含有效的SVG代码。如果我将这个字符串复制到一个具有.svg扩展名的文本文件中,那么它就会很好地打开。但是readImageBlob抛出了一个异常,表示no delegate for this image format

我看到了类似的问题解决了通过安装更多的软件包到系统。但是我已经安装了libxml2-devlibrsvg2-binlibmagickcore-6.q16-3-extralibfreetype6-dev

我不知道我还错过了什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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的文件中。

代码语言:javascript
复制
convert test.svg test.png

如果我强制使用Imagemagick /XML,它看起来就不那么好了。

代码语言:javascript
复制
convert MSVG:test.svg test2.png

票数 1
EN

Stack Overflow用户

发布于 2018-06-28 13:47:04

我不得不在$svg上加上<?xml version="1.0" ?>,然后它就成功了。它至少在SVG中读取并尝试创建png/jpeg。不过,在转换过程中,有一段文字会被错位。因此,总体来说,这项任务仍未完成。但这是另一个问题。我想这个问题已经回答了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51082802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档