На самом деле, с полной установкой последней версии ImageMagick это должно быть так же просто, как:
convert some.jpeg some.svg
Конечно, ImageMagick не может сделать все сам по себе - он использует делегатов (вспомогательные программы) для обработки ввода или вывода SVG. (Об этом уже говорили другие ответы.)
Чтобы просмотреть (частичный) список всех делегатов (и их соответствующих команд), введите
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"/>
Как вы можете видеть, в моей системе установка ImageMagick автоматически использует (среди прочего) ...
- ...
inkscape
для преобразования SVG в PNG;
- ...
autotrace
для преобразования PNM в SVG;
Конечно, можно поспорить о преимуществах непосредственного использования autotrace
, но для этого потребуется сначала вручную преобразовать любой формат ввода в PNM. Так что для этого предварительного шага вы, вероятно, все равно будете использовать ImageMagick ...