Как преобразовать PNG-изображение в SVG?

Как преобразовать PNG-изображение в SVG?

Ответ 1

Существует веб-сайт, на котором вы можете загрузить свое изображение и увидеть результат.

http://vectormagic.com/home

Но если вы хотите скачать svg-образ, вам необходимо зарегистрироваться. (Если вы зарегистрируетесь, вы получите 2 изображения бесплатно)

Ответ 2

potrace не поддерживает PNG в качестве входного файл, но PNM.
Поэтому сначала convert от PNG до PNM:

convert file.png file.pnm        # PNG to PNM
potrace file.pnm -s -o file.svg  # PNM to SVG

Объяснить параметры

  • potrace -s = > Выходной файл S VG
  • potrace -o file.svg = > Запись вывода на file.svg

Пример

Входной файл = 2017.png Входной файл

convert 2017.png 2017.pnm

Временной файл = 2017.pnm

potrace 2017.pnm -s -o 2017.svg

Выходной файл = 2017.svg Выходной файл

Script

ykarikos предлагает script png2svg.sh что я улучшил:

#!/bin/bash

File_png="${1?:Usage: $0 file.png}"

if [[ ! -s "$File_png" ]]; then
  echo >&2 "The first argument ($File_png)"
  echo >&2 "must be a file having a size greater than zero"
  ( set -x ; ls -s "$File_png" )
  exit 1
fi

File="${File_png%.*}"

convert "$File_png" "$File.pnm"        # PNG to PNM
potrace "$File.pnm" -s -o "$File.svg"  # PNM to SVG
rm "$File.pnm"                         # Remove PNM

Однострочная команда

Если вы хотите преобразовать много файлов, вы также можете использовать следующую команду:

( set -x ; for f_png in *.png ; do f="${f_png%.png}" ; convert "$f_png" "$f.pnm" && potrace "$f.pnm" -s -o "$f.svg" ; done )

См. также

См. также это хорошее сравнение растровых и векторных преобразователей в Википедии.

Ответ 3

Png - стиль растрового изображения, а SVG - векторный графический дизайн, который поддерживает растровые изображения, поэтому он не может преобразовать изображение в векторы, а просто изображение, встроенное в векторный формат. Вы можете сделать это с помощью http://www.inkscape.org/, который является бесплатным. Он будет внедрять его, однако он также имеет движок Live Trace, который будет пытаться преобразовать его в пути, если вы хотите (используя potrace). См. Прямую трассировку в adobe illustrator (commericial) является примером:

http://graphicssoft.about.com/od/illustrator/ss/sflivetrace.htm

Ответ 4

Вы можете посмотреть potrace.

Ответ 5

с иллюстратором adobe:

Откройте Adobe Illustrator. Нажмите "Файл" и выберите "Открыть", чтобы загрузить файл .PNG в программу. Извлеките изображение по мере необходимости, прежде чем сохранять его как .SVG файл. Нажмите "Файл" и выберите "Сохранить как". Создайте новое имя файла или используйте существующее имя. Убедитесь, что выбранный тип файла - SVG. Выберите каталог и нажмите "Сохранить", чтобы сохранить файл.

или

онлайн-конвертер http://image.online-convert.com/convert-to-svg

Я предпочитаю AI, потому что вы можете внести любые изменения

удача

Ответ 6

Легко

  • Загрузите Inkscape (он полностью свободен)
  • Следуйте инструкциям в этом коротком видео youtube

Как вы увидите, если вы хотите сделать много других умных файлов .svg, вы можете сделать это, используя Inkscape.

Нетехническое наблюдение: я лично предпочитаю этот метод по сравнению с "бесплатными" предложениями на сайте, потому что, помимо часто требующих регистрации, путем загрузки изображения на всех практических примерах он дает изображение владельцу веб-сайта.

Ответ 7

К моему удивлению, potrace, оказывается, может обрабатывать только черно-белые. Это может быть хорошо, если вы используете случай, но некоторые могут считать отсутствие цветовой трассировки проблематичной.

Лично у меня были удовлетворительные результаты с Vector Magic

Тем не менее он не идеален.

Ответ 8

Примечание для тех, кто использует potrace и imagemagick, преобразование PNG изображений с прозрачностью в PPM doesn Кажется, он работает очень хорошо. Вот пример, который использует флаг -flatten на convert для обработки этого:

sudo apt-get install potrace imagemagick
convert -flatten input.png output.ppm
potrace -s output.ppm -o output.svg
rm output.ppm

Еще одно интересное явление: вы можете использовать PPM (256 * 3 цвета, т.е. RGB), PGM (256 цветов, то есть оттенки серого) или PBM (2 цвета, то есть белый или только черный) в качестве формата ввода. Из моих ограниченных наблюдений казалось бы, что на изображениях, которые сглажены, PPM и PGM (которые, как я вижу, производят идентичные PBM расширяет цветную область (хотя и немного). Предположительно, это разница между тестом pixel > (256 / 2) и тестом pixel > 0. Вы можете переключаться между ними, изменяя расширение файла, т.е. следующее использование PBM:

sudo apt-get install potrace imagemagick
convert -flatten input.png output.pbm
potrace -s output.pbm -o output.svg
rm output.pbm

Ответ 9

Я только что нашел этот вопрос и ответы, поскольку я пытаюсь сделать то же самое! Я не хотел использовать некоторые из других упомянутых инструментов. (Не хотите отсылать мою электронную почту и не хотите платить). Я обнаружил, что Inkscape (v0.91) может выполнять довольно хорошую работу. Этот tutorial быстро и понятен.

Это так же просто, как выбор растрового изображения в Inkskape и Shift + Alt + B.

Edge Detection with Inksape Trace bitmap tool based on potrace

Ответ 11

В зависимости от того, почему вы хотите конвертировать из .png в .svg, вам, возможно, не придется беспокоиться. Преобразование из .png(растр) в .svg(vector) может быть больно, если вы не очень хорошо знакомы с доступными инструментами или если вы не являетесь графическим дизайнером по профессии.

Если кто-то отправляет вам большой файл с высоким разрешением (например, 1024x1024), вы можете изменить его размер до практически любого размера, который вы хотите использовать в GIMP. Часто возникают проблемы с изменением размера изображения, если разрешение (количество пикселей на дюйм) слишком низкое. Чтобы исправить это в GIMP, вы можете:

  • File -> Open: ваш .png файл
  • Image -> Image Properties: проверьте разрешение и цветовое пространство. Вы хотите разрешение около 300 ppi. В большинстве случаев вам нужно, чтобы цветовое пространство было RGB.
  • Image -> Mode: установить в RGB
  • Image -> Scale Image: оставьте размер отдельно, установите и Y-разрешение до 300 или больше. Шкала попадания.
  • Image -> Scale Image: разрешение должно теперь составлять 300, и теперь вы можете изменить размер изображения до практически любого размера, который вы хотите.

Не так просто, как изменение размера .svg файла, но определенно проще и быстрее, чем пытаться преобразовать .png в .svg, если у вас уже есть большое изображение с высоким разрешением.

Ответ 12

Я предполагаю, что вы хотите написать программное обеспечение для этого. Чтобы сделать это наивно, вы просто найдете линии и установите векторы. Чтобы сделать это разумно, вы пытаетесь приспособить фигуры к чертежу (подгонка модели). Кроме того, вы должны попытаться определить растровые области (регионы, которые вы не можете моделировать с помощью shames или применения текстур. Я бы не стал рекомендовать идти по этому маршруту, так как это займет довольно много времени и потребует немного знаний о графике и компьютерном видении. Тем не менее, выход будет значительно и значительно лучше, чем ваш исходный вывод.

Ответ 15

Если вы находитесь в какой-то системе Linux, imagemagick идеально подходит. То есть

convert somefile.png somefile.svg

Это работает с кучами разных форматов.

Для других носителей, таких как использование видео и аудио (ffmpeg) Однако я знаю, что вы четко указали png на svg; Это все еще связано с медиа.

ffmpeg -i somefile.mp3 somefile.ogg

Просто подскажите, хотите ли вы пройти через множество файлов; цикл с использованием основных трюков оболочки.

for f in *.jpg; do convert $f ${f%jpg}png; done

Это удаляет jpg и добавляет png, который сообщает конвертировать то, что вы хотите.