このコマンドを実行して、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
完全を期すために...