ImageMagickを使用してJPEG画像をSVG形式に変換するにはどうすればよいですか?
potrace を使用して、最初にビットマップに変換する必要があります。
$convert input.jpg output.ppm
$potrace -s output.ppm -o svgout.svg
実際、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=""/opt/local/bin/convert" "%i" \
"pnm:%u"\n\
"/opt/local/bin/autotrace" \
-input-format pnm \
-output-format svg \
-output-file "%o" "%u""/>
<delegate decode="svg:decode" stealth="True" \
command=""/opt/local/bin/inkscape" "%s" \
--export-png="%s" \
--export-dpi="%s" \
--export-background="%s" \
--export-background-opacity="%s" \
> "%s" 2>&1"/>
ご覧のとおり、myシステムでは、ImageMagickインストールが(とりわけ)自動的に使用します...
inkscape
SVGをPNGに変換します。autotrace
PNMをSVGに変換します。もちろん、autotrace
を直接使用することの利点について議論することもできますが、その場合は、最初に入力形式を手動でPNMに変換する必要があります。したがって、この準備段階では、とにかくImageMagickを使用するでしょう...
Jpgはラスター形式であり、SVGはベクトル形式であるため、実際には、間に画像をベクトル化するためのソフトウェアまたはコードが必要になります。 imagemagickだけでそれができるとは思いません。