答案在我標記的答案上,但在評論中。基本上,在這裏看到:http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=18816使用ImageMagick將SVG轉換爲PNG不能處理defs?
與端口上運行此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 - >符號來定義e箭頭符號。稍後在文檔中我xlink:使用該符號。這在Chrome中工作正常,箭頭出現,並在其適當的位置:
但是,如果我通過ImageMagick的轉換圖像,像這樣:
convert test.svg test.png
它不工作。下面是我得到:
「使用」似乎被完全忽略,取而代之的是箭頭的高清渲染。至少,我可以告訴。
我的格式化我的SVG錯誤的Imagemagick處理這種情況?或者這只是Imagemagick不支持的東西?我一直在尋找一個明確的答案,找不到一個,一個或另一個。
我也試過這裏的SVG:http://www.carto.net/svg/samples/symbol.svg和符號不起作用。所以我傾向於Imagemagick成爲罪魁禍首。
更新:我試圖改變DEF以下幾點:
<symbol id="arrow" x="25">
在瀏覽器中,箭頭確實會移動25的權利,但在ImageMagick的它堅持(0,0)。這讓我相信它不太符合符號定義,更多的是關於它沒有正確地翻譯它。但是,即使我嘗試對「使用」進行直接轉換,甚至更好地完全移除「使用」,仍然會出現箭頭。
接縫像一個錯誤:(但一個解決方法是使用Inkscape,而不是接縫來正確渲染SVG。Inkscape支持從命令行轉換爲PNG,如果這是你正在尋找的。 –
不幸的是,我必須做它與ImageMagick。現實中,這將用於RMagick(Rails接口到IM),並在Heroku完成服務器端。我不認爲我有任何其他選擇。 –