2

答えは私がフラグを立てた答えにありますが、コメントにあります。基本的に、ここを参照してください: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(本日更新されました)

矢印記号を定義するためにdefs->記号を実行するSVGファイルがあります。ドキュメントの後半で、xlink:そのシンボルを使用します。これはChromeで正常に機能し、矢印が表示されて適切な位置にあります。

ここに画像の説明を入力してください

ただし、imagemagickを介して画像を次のように変換すると、次のようになります。

convert test.svg test.png

動作しません。これが私が得るものです:

ここに画像の説明を入力してください

「使用」は完全に無視されているように見え、代わりに矢印がdefでレンダリングされています。少なくとも、私が知る限りでは。

Imagemagickがこのシナリオを処理するためにSVGを間違ってフォーマットしていますか?それとも、これはImagemagickが適切にサポートしていないものですか?私は決定的な答えを探し続けてきましたが、どちらか一方を見つけることができません。

http://www.carto.net/svg/samples/symbol.svgでSVGも試しましたが、シンボルが機能しませんでした。だから私はImagemagickが犯人であることに傾倒しています。

更新:defを次のように変更してみました:

<symbol id="arrow" x="25">

ブラウザでは、矢印は右に25移動しますが、Imagemagickでは(0,0)のままです。これは、それがシンボルの定義についてではなく、それが適切に翻訳されていないことについてであると私に信じさせました。ただし、「使用」をまっすぐに変換して、「使用」を完全に削除しても、矢印は表示されます。

4

2 に答える 2

2

更新:これは、ImageMagickのデフォルトのSVGレンダラーのバグであり、タグを無視xyますuse(また、タグの変換属性も無視しgます)。代わりにrsvgバックエンドを使用してみてください。

変更しても機能しますか?

<use xlink:href="#arrow" x="20" y="50"></use>

に:

<g transform="translate(20 50)">
  <use xlink:href="#arrow"></use>
</g>
于 2012-05-18T20:30:54.640 に答える
0

IMを使用しなければならない理由について詳しく教えてください。この場合、IMが役に立たないことが判明した場合、確かに他のものを使用する必要がありますか?私はこれのために2番目のInkscapeです。

そうは言っても、XML操作を実行する場合は、おそらくIMを使用できます。シンボルの内容を<use>個別にその場所にコピーできると思います。同じシンボルを何度も使用する場合は厄介な回避策ですが、IMを使い続けたい場合は、それが唯一の前進である可能性があります。IMを混乱させるのはシンボルシステムであるという理論に取り組んでいます。パスが「インライン」の場合は問題ない可能性があります。

于 2012-05-19T11:19:39.727 に答える