Как мне конвертировать PNG в SVG, используя программное обеспечение?


29

Я хотел бы иметь возможность полностью обрезать химические структуры SVG (см. Этот вопрос ), которые были созданы с помощью MarvinSketch, и я думаю, что мог бы подумать о решении; Я использую MarvinSketch, чтобы создать большой файл PNG, затем обрезать его с помощью GIMP , а затем преобразовать PNG в SVG . Поэтому я хотел бы знать, знает ли кто-нибудь бесплатное программное обеспечение, которое я могу установить (я не люблю использовать онлайн-конвертеры, поскольку я всегда подозреваю вредоносные программы) в Ubuntu для высококачественного преобразования PNG-> SVG.


1
Хорошо, как будет выглядеть код для этого? Я пытался изменить код, как вы сказали, из моих знаний (я нуб кода). Это код, который я использовал`#{INKSCAPE_PATH} -z -f #{Guanidine.png} -w #{width} -j -e #{Guanidine.svg}
BH2017

1
После того, как делать cd ~/Documents/Chem Structures/это каталог, в котором находятся файлы.
BH2017

1
sudo apt-get install imagemagick, затем сохраните этот скрипт #! / bin / bash while [$ # -gt 0]; do picture = $ 1 png_file = echo "$picture" | sed 's/\.\w*$/.png/' / usr / bin / convert "$ picture" png: сдвиг "$ png_file", выполненный в ~ / .local / share / nautilus / scripts, и не забудьте сделать его исполняемым, затем просто щелкните правой кнопкой мыши, затем вырежьте все, что когда-либо вы сохраните этот скрипт под
zeitue

1
Хорошо, как я уже сказал, я новичок, так что вам придется объяснить это лучше, поскольку все, что я понял,sudo apt-get install imagemagick
BH2017

2
Тем не менее, вы должны знать, что существует принципиальная разница между векторной графикой, такой как SVG, и пиксельной графикой, такой как PNG. После того, как вы потеряете векторную информацию, не будет (без потерь) способа восстановить ее. Таким образом, даже если вы «конвертируете» из PNG в SVG, вы в основном ничего не делаете, встраивая пиксельную графику (в кодировке base64) в файл векторной графики SVG. Команда convertеще хуже: она помещает кружок для каждого пикселя пиксельной графики, что приводит к очень большим размерам файлов. Поэтому я бы попытался напрямую вырезать файл SVG.
soulsource

Ответы:


24

Итак, вы ищете конвертер растровых изображений в векторную графику / трассировщик . potraceИ autotraceоба находятся в хранилище Ubuntu. Я сам пытался potraceраньше, который дал хорошие результаты с параметрами по умолчанию. Как я помню, оба инструмента не поддерживают сжатые форматы в качестве входных данных, только растровые изображения .

Смотрите примеры Potrace

Potrace : утилита для преобразования растровых изображений в векторную графику

potrace - это утилита для отслеживания растрового изображения, то есть преобразования растрового изображения в гладкое масштабируемое изображение. Входными данными является растровое изображение (формат PBM, PGM, PPM или BMP), а выводом по умолчанию является инкапсулированный файл PostScript (EPS). Типичное использование - это создание файлов EPS из отсканированных данных, таких как логотипы компаний или университетов, рукописные заметки и т. Д. Полученное изображение не «зубчатое», как растровое изображение, а гладкое. Затем он может быть представлен в любом разрешении.

Команда:

potrace -s inputfile

AutoTrace : конвертер растрового изображения в векторную графику

AutoTrace - программа для преобразования растровых изображений в векторную графику. Целью проекта AutoTrace является разработка свободно доступного приложения, похожего на CorelTrace или Adobe Streamline. В некоторых аспектах это уже лучше. Изначально созданный как плагин для GIMP, AutoTrace теперь является отдельной программой.

Команда:

autotrace -output-format svg inputfile

Ссылки:

  • man potrace
  • man autotrace

Обновить


1
Я запустил autotrace -vector svg inputfile(после изменения inputfile на fenfluramine.png), и он не работал, я также изменил формат вывода, чтобы svg не работал. Я установил это.
BH2017

1
Я побежал potrace -s inputfile(с входным файлом снова fenfluramine.png), и он выдал мне эту ошибку:potrace: /home/fusion809/Documents/Chem Structures/Fenfluramine.png: file format not recognized Possible input file formats are: pnm (pbm, pgm, ppm), bmp.
BH2017

1
@BrentonHorne, вы должны создать изображение PNM или BMP вместо PNG. оба инструмента не поддерживают сжатые форматы в качестве входных данных (PNG, JPEG ...), только растровые изображения (PNM, BMP, ...). Если вы не можете экспортировать другие, чем PNG, попробуйте конвертировать их в BMP.
user.dz

1
Ну тогда ты не ответил на мой вопрос. MarvinSketch может экспортировать в BMP, но его фон не прозрачен, поэтому я предложил формат PNG. Это не может сделать PNM.
BH2017

2
Ага, это сработало. Спасибо. Я думал, так как BMP не был прозрачным, никакого результата тоже не было бы.
BH2017

19

В Inkscape есть отличный инструмент для автоматического отслеживания.

  1. Установите Inkscape используя sudo apt-get install inkscape
  2. Импортируйте ваше изображение
  3. Выберите ваше изображение
  4. В строке меню выберите Path -> Trace Bitmap Item
  5. Настройте параметры трассировки по мере необходимости

Проверьте их учебник по трассировке для получения дополнительной информации.

Как только вы освоитесь с параметрами трассировки. Вы можете автоматизировать это с помощью CLI Inkscape .


5
+1, спасибо. Рад слышать, что Inkscape имеет встроенную potraceфункциональность в графическом интерфейсе, как указано в упомянутой вами ссылке.
user.dz

5
Это правильный ответ, так как potrace не поддерживает импорт .png, и с конверсиями легко столкнуться с трудностями с прозрачностью и т. Д.
Брианлмеррит

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

8

Используйте convertкоманду в терминале:

Например : convert EXAMPLE.png EXAMPLE.svg

Вот некоторая информация из справочной страницы:

convert(1) - Linux man page

Name

convert - convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.

Synopsis

convert [input-options] input-file [output-options] output-file


3
Это встраивает растровое изображение в SVG вместо преобразования в векторное изображение.
bk138

1
Большое спасибо ... это как раз то, что я искал ...
Дэн Ортега

2

Я только что использовал GIMP сейчас с потрясающими результатами. Сначала я использовал potrace, но все, что я получил, было черным изображением с большим количеством искажений. Возможно, я не использовал его должным образом, но когда я попытался с помощью gimp, просто экспортировав его как «eps» (file_name.eps), все было сделано. Все, что мне нужно сделать, это просмотреть его, установив разрешение со значением 300. Вот и все.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.