Как преобразовать изображение JPEG в формат SVG с помощью ImageMagick?
Как преобразовать изображение JPEG в формат SVG с помощью ImageMagick?
Ответ 1
вам нужно будет использовать potrace и сначала конвертировать в растровое изображение.
$convert input.jpg output.ppm
$potrace -s output.ppm -o svgout.svg
Ответ 2
Собственно, при полной установке последней версии 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...
Ответ 3
Вам действительно понадобится программное обеспечение или код для векторизации изображения между ними, поскольку jpg - это растровый формат, а SVG - векторный. Я не думаю, что только воображаемый может сделать это для вас.