Подтвердить что ты не робот

Как преобразовать изображение JPEG в формат SVG с помощью ImageMagick?

Как преобразовать изображение JPEG в формат SVG с помощью ImageMagick?

4b9b3361

Ответ 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="&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"/>

Как вы можете видеть, в моей системе установка ImageMagick автоматически использует (среди прочих)...

  • ... inkscape для преобразования SVG в PNG;
  • ... autotrace для преобразования PNM в SVG;

Конечно, можно было бы утверждать о преимуществах скорее использования autotrace напрямую, но для этого сначала необходимо вручную преобразовать формат ввода-вывода в PNM. Итак, для этого предварительного шага вы, вероятно, будете использовать ImageMagick...

Ответ 3

Вам действительно понадобится программное обеспечение или код для векторизации изображения между ними, поскольку jpg - это растровый формат, а SVG - векторный. Я не думаю, что только воображаемый может сделать это для вас.