答案在我标记的答案上,但在评论中。基本上,见这里:http ://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=18816
在带有端口的 Mac 上运行它:
sudo port install ImageMagick +rsvg
这是我原来的问题:
我的 test.svg 文件在这里:https ://gist.github.com/2727243
Imagemagick 版本:ImageMagick 6.7.6-9 2012-05-18 Q16(今天刚刚更新)
我有一个 SVG 文件,它使用 defs -> 符号来定义箭头符号。稍后在文档中我 xlink:use 该符号。这在 Chrome 中运行良好,箭头出现并处于正确位置:
但是,如果我像这样通过 imagemagick 转换图像:
convert test.svg test.png
它不起作用。这是我得到的:
“使用”似乎被完全忽略了,而是箭头在 def 处呈现。至少,据我所知。
我的 SVG 格式是否错误,以便 Imagemagick 处理这种情况?或者这只是 Imagemagick 不能正确支持的东西?我一直在寻找一个明确的答案,但找不到一个,一种方式或另一种方式。
我也在这里尝试了 SVG:http: //www.carto.net/svg/samples/symbol.svg并且符号不起作用。所以我倾向于 Imagemagick 是罪魁祸首。
更新:我尝试将 def 更改为以下内容:
<symbol id="arrow" x="25">
在浏览器中,箭头确实向右移动了 25,但在 Imagemagick 中,它一直停留在 (0,0)。这让我相信它与符号定义无关,更多的是关于它没有正确翻译它。但是,即使我尝试对“使用”进行直接变换,甚至更好地完全删除“使用”,箭头仍然会出现。