Как преобразовать изображение PNG в SVG?
Как преобразовать изображение PNG в SVG?
Ответы:
Существует веб-сайт, где вы можете загрузить свое изображение и посмотреть результат.
Но если вы хотите скачать свое svg-изображение, вам необходимо зарегистрироваться. (Если вы зарегистрируетесь, вы получите 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 VGpotrace -o file.svg
=> Записать вывод в file.svg
convert 2017.png 2017.pnm
Временный файл = 2017.pnm
potrace 2017.pnm -s -o 2017.svg
ykarikos предлагает улучшенный скрипт 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 )
Смотрите также это хорошее сравнение растровых и векторных преобразователей в Википедии.
potrace
для черно-белых иконок. Спасибо за ваш отзыв. Но извините, не знаю, как сохранить цвета ... Хо! У меня есть идея: если ваше исходное изображение имеет несколько цветов (скажем, три уникальных цвета), вы можете создать три исходных изображения (по одному для каждого цвета). Затем конвертируйте в SVG. И наконец, объедините три SVG-контента в один файл (SVG основан на XML). Надеюсь, что это может помочь ... Ура ;-)
convert
и potrace
доступны на многих платформах. Я использую компьютеры на базе Linux. Я только что использовал эти команды вчера, чтобы создать SVG из отсканированной бумаги. Вы можете увидеть результат: cpp-frug.github.io/images/Cpp-President-2017.svg Пожалуйста, объясните больше о вашей цели. Что ты хочешь / удивляешься? Какова ваша потребность / желание? Приветствия ;-)
Png - это стиль растрового изображения, а SVG - это векторный графический дизайн, который поддерживает растровые изображения, поэтому он не должен преобразовывать изображение в векторы, а просто изображение, встроенное в векторный формат. Вы можете сделать это, используя http://www.inkscape.org/, который является бесплатным. Он будет встраивать его, однако он также имеет движок, похожий на Live Trace, который при желании попытается преобразовать его в пути (используя potrace). См живой след в Adobe Illustrator (коммерческий) является примером:
http://graphicssoft.about.com/od/illustrator/ss/sflivetrace.htm
Вы можете посмотреть на Potrace .
Легко
Как вы увидите, если вы хотите сделать много других умных вещей .svg, вы можете сделать это и с помощью Inkscape.
Нетехническое наблюдение: я лично предпочитаю этот метод более «бесплатным» предложениям на сайте, потому что, помимо частой необходимости регистрации, путем загрузки изображения, с практической точки зрения, его передают владельцу сайта.
с Adobe Illustrator:
Откройте Adobe Illustrator. Нажмите «Файл» и выберите «Открыть», чтобы загрузить файл .PNG в программу. При необходимости отредактируйте изображение, прежде чем сохранять его как файл .SVG. Нажмите «Файл» и выберите «Сохранить как». Создайте новое имя файла или используйте существующее имя. Убедитесь, что выбран тип файла SVG. Выберите каталог и нажмите «Сохранить», чтобы сохранить файл.
или
онлайн-конвертер http://image.online-convert.com/convert-to-svg
Я предпочитаю ИИ, потому что вы можете вносить любые необходимые изменения
удачи
К моему удивлению, potrace оказывается, может обрабатывать только черное и белое. Это может быть хорошо для вашего случая использования, но некоторые могут посчитать, что отсутствие цветовой трассировки проблематично.
Лично у меня были удовлетворительные результаты с Vector Magic
Тем не менее, это не идеально.
Примечание для тех , используя Potrace и ImageMagick , преобразовывая PNG изображения с прозрачностью в РРМ , кажется, не работают очень хорошо. Вот пример, который использует -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 (которые, насколько я вижу, дают идентичные SVG ) уменьшают цветную область, а 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
Вы также можете попробовать http://image.online-convert.com/convert-to-svg
Я всегда использую это для своих нужд.
Я только нашел этот вопрос и ответы, поскольку я пытаюсь сделать то же самое! Я не хотел использовать некоторые другие упомянутые инструменты. (Не хочу отдавать мою электронную почту и не хочу платить). Я обнаружил, что Inkscape (v0.91) может сделать довольно хорошую работу. Этот урок быстро и легко понять.
Это так же просто, как выбрать ваше растровое изображение в Inkskape и Shift + Alt + B.
В зависимости от того, почему вы хотите конвертировать из .png в .svg, вам, возможно, не придется проходить через эту проблему. Преобразование из .png (растрового) в .svg (векторный) может быть затруднительным, если вы не очень хорошо знакомы с доступными инструментами или если вы не являетесь графическим дизайнером по профессии.
Если кто-то отправляет вам большой файл высокого разрешения (например, 1024x1024), вы можете изменить его размер практически до любого размера, который вы хотите в GIMP. Часто возникают проблемы с изменением размера изображения, если разрешение (количество пикселей на дюйм) слишком низкое. Чтобы исправить это в GIMP, вы можете:
File -> Open
: ваш файл .pngImage -> Image Properties
: проверьте разрешение и цветовое пространство. Вы хотите разрешение около 300 пикселей на дюйм. В большинстве случаев вы хотите, чтобы цветовое пространство было RGB.Image -> Mode
: установить в RGBImage -> Scale Image
: оставьте один размер, установите и разрешение Y до 300 или больше. Хит Масштаб.Image -> Scale Image
: теперь разрешение должно быть 300, и теперь вы можете изменить размер изображения практически до любого желаемого размера.Не так просто, как изменить размер файла .svg, но определенно проще и быстрее, чем пытаться преобразовать .png в .svg, если у вас уже есть большое изображение с высоким разрешением.
Я предполагаю, что вы хотите написать программное обеспечение для этого. Чтобы сделать это наивно, вы просто должны найти линии и задать векторы. Чтобы сделать это разумно, вы пытаетесь разместить фигуры на чертеже (примерка модели). Кроме того, вы должны попытаться определить растровые области (области, которые вы не можете смоделировать с помощью шамов или наложения текстур. Я бы не рекомендовал идти по этому пути, поскольку это займет довольно много времени и потребует немного знаний в области графики и компьютерного зрения. Тем не менее, выходные данные будут намного масштабнее, чем исходные.
http://online-converting.com/image/convert-to-svg/ хорошо работал для преобразования в SVG
potrace
в командной строке - заставляет меня задуматься, что сайт использует внутренне ...
Этот инструмент работает очень хорошо прямо сейчас.
Если вы работаете в какой-то системе 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, который говорит конвертировать, что вы хотите.