web-dev-qa-db-ja.com

ImageMagickを使用してJPEG画像をSVG形式に変換するにはどうすればよいですか?

ImageMagickを使用してJPEG画像をSVG形式に変換するにはどうすればよいですか?

27
jasonb

potrace を使用して、最初にビットマップに変換する必要があります。

$convert input.jpg output.ppm
$potrace -s output.ppm -o svgout.svg
42
iamashm

実際、ImageMagickの最新バージョンを完全にインストールすると、次のように簡単になります。

convert  some.jpeg  some.svg

もちろん、ImageMagickはそれだけですべてを行うことはできません-SVGの入力または出力を処理するためにdelegates(ヘルパープログラム)を使用します。 (これはすでに他の回答によって指摘されています。)

すべてのデリゲート(およびそれぞれのコマンド)の(部分的な)リストを表示するには、次を実行します。

convert  -list delegate

すべてのデリゲートシークレットが非表示になっている構成ファイルを確認するには、を参照してください。

convert  -list delegate | grep delegates.xml

SVG処理デリゲートの(部分的な)リストを表示するには、

convert  -list delegate | grep -i svg

ただし、ImageMagickは、外部ヘルパーユーティリティの一部を「ステルス」モードにするのが好きで、上記のコマンドを使用したときに必ずしもそれらの存在を明らかにするわけではありません。

delegates.xmlファイル自体を調べてください。私のシステムでは、次のようになります。

grep -i svg /opt/local/etc/ImageMagick/delegates.xml | grep -i --color stealth

  <delegate decode="autotrace" stealth="True" \
            command="&quot;/opt/local/bin/convert&quot; &quot;%i&quot; \
            &quot;pnm:%u&quot;\n\
            &quot;/opt/local/bin/autotrace&quot; \
           -input-format pnm \
           -output-format svg \
           -output-file &quot;%o&quot; &quot;%u&quot;"/>

  <delegate decode="svg:decode" stealth="True" \
            command="&quot;/opt/local/bin/inkscape&quot; &quot;%s&quot; \
            --export-png=&quot;%s&quot; \
            --export-dpi=&quot;%s&quot; \
            --export-background=&quot;%s&quot; \
            --export-background-opacity=&quot;%s&quot; \
            &gt; &quot;%s&quot; 2&gt;&amp;1"/>

ご覧のとおり、myシステムでは、ImageMagickインストールが(とりわけ)自動的に使用します...

  • ...inkscapeSVGをPNGに変換します。
  • ...autotracePNMをSVGに変換します。

もちろん、autotraceを直接使用することの利点について議論することもできますが、その場合は、最初に入力形式を手動でPNMに変換する必要があります。したがって、この準備段階では、とにかくImageMagickを使用するでしょう...

27
Kurt Pfeifle

Jpgはラスター形式であり、SVGはベクトル形式であるため、実際には、間に画像をベクトル化するためのソフトウェアまたはコードが必要になります。 imagemagickだけでそれができるとは思いません。

16
schnaader