9

ImageMagick のconvertユーティリティを使用して、SVG ファイルを PNG 画像に変換しています。最初に、OSX 上の IM のバニラ インストール ( brew install imagemagick) を使用して、次を使用して SVG を変換しました。

$ convert file.svg file.png

これは、そのファイル内の一部の画像オブジェクトがオフセットされていることを除いて機能しました (画像への実際のリンク)。次に、 ImageMagick をrsvgサポート付きでコンパイルすることを提案する関連する質問を読みました(homebrew は で行います)。brew install imagemagick --use-rsvg

今、変換を実行しようとすると、画像がレンダリングされません。この SVG ファイルを使用してみましたが、結果の PNG は空白でした。ただし、SVG にテキストが存在する場合は、適切な場所にレンダリングされます。続行する方法はありますか?ありがとう。

4

3 に答える 3

19

このコマンドを実行して、ImageMagick が使用しようとしているすべての「デリゲート」のリストを表示する必要があります。

 convert -list delegate

ImageMagick が SVG 処理に使用するデリゲート コマンドを検出するには、以下を実行します。

 convert -list delegate | grep 'svg ='

使用しようとしているバイナリ + コマンドライン パラメータが表示convertされます。私の場合はそうです/opt/local/bin/rsvg-convert(ただし、Homebrewは使用していません。MacPortsを使用しています)。

システムにバイナリが存在するかどうかを確認します。

  • はいの場合は、直接実行してそこからデバッグします。
  • いいえの場合は、Homebrew インストールでインストールされた場所を見つけて、そのデリゲート用に ImageMagick の構成ファイルを変更してください。delegates.xmlと呼ばれます。MacPorts はそれを配置します/opt/local/etc/ImageMagick/delegates.xml-- Homebrew がどこに保存するかはわかりません。

ただし、変更されていないインストールは既に機能していたので、SVG を使用するデリゲートが既に機能していたに違いありません。そうしないと、SVG がまったく処理さませんでした。

この ImageMagick の内部 SVG レンダリング メソッドは、MSVG と呼ばれます。これは、完全な機能を備えた SVG インタープリター/レンダラーにはほど遠いものです。


アップデート:

ImageMagick がどのフォーマットに対して何を行っているかを確認するには、次のコマンドを実行します。

convert -list format

およびSVG実行の場合

convert -list format | grep SVG

私のシステムの出力は次のとおりです。

 MSVG  SVG       rw+   ImageMagick's own SVG internal renderer
  SVG  SVG       rw+   Scalable Vector Graphics (RSVG 2.36.1)
 SVGZ  SVG       rw+   Compressed Scalable Vector Graphics (RSVG 2.36.1)

をインストールrsvgした後でも、SVG をレンダリングするための内部メソッドはなくなりません。MSVG:次のようにコマンドラインに追加することで、ImageMagick に内部レンダラーを使用させることができます。

convert  MSVG:file.svg  file.png

完全を期すために...

于 2012-07-21T17:41:25.940 に答える
3

ああ、リンク先の SVG ファイルを見てみました。

JavaScriptが含まれています。RSVGlib が SVG 内の JavaScript をサポートしているとは思いません。MSVGという名前の内部 SVG コーダーがそうではないことは確かです。

于 2012-07-21T18:02:45.267 に答える
-1

同様の問題があり、inkscapeをインストールするように言われましたが、動作します。

ImageMagick は、傾斜した x 軸ラベルを使用して svg グラフを pdf に変換します。アイデアはありますか?

デリゲート リストは変更されませんでしたが、出力は変更されました。強制MSVGをさらにいじっても、問題を解決できませんでした。したがって、別のデリゲートがおそらく最善の解決策です。

于 2019-02-10T15:12:26.140 に答える