PerfectVector
Автор: Irene Kim

ImageMagick: проверьте модуль трассировки PNG в SVG

Узнайте, создает ли ваша команда ImageMagick PNG-to-SVG пути, какой делегат трассировки она использует и почему цветное изображение может стать монохромной трассировкой SVG.

8 мин чтения
На этой странице

ImageMagick может создавать векторные пути SVG из PNG, если его сборка и конфигурация обеспечивают маршрут трассировки. В нашей установленной установке ImageMagick 7.1.2-32 magick color-regions.png traced.svg использовал Potrace 1.16 и создавал черные пути, а не встроенный PNG. Он также потерял исходные цвета и светлую область. Проверьте установленный делегат и сохраненный файл, прежде чем решить, соответствует ли эта команда вашим потребностям.

Если вам нужен онлайн-маршрут трассировки для того же PNG, начните с PerfectVector и проверьте цветовые области и отверстия предварительного просмотра. Для редактирования и экспорта требуется разблокированный результат. Это руководство диагностирует локальный маршрут ImageMagick; он не сравнивает качество вывода инструментов.

Попробуйте на своём изображении
Открыть полный инструмент
Бесплатно и без регистрации: перетащите изображение, чтобы увидеть превью своего вектора.

Начните с симптома, затем осмотрите трубопровод.

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

Делегат — это внешняя программа, которую ImageMagick вызывает для выполнения задачи. Его документация по ресурсам описывает настройку делегата. Запишите фактическую конфигурацию вашего компьютера; команда, скопированная из другой установки, может следовать другим маршрутом.

Для этой проверки вам понадобится копия вашего PNG, установленный ImageMagick, терминал, текстовый редактор и программа просмотра SVG. Сохраните исходный код без изменений и дайте каждому результату теста новое имя файла. В нашем примере также был установлен Potrace; это часть тестируемой среды, а не зависимость, которую обязательно разделяет каждая установка ImageMagick.

Иллюстрация
Иллюстрация источника PNG, проходящего через настроенный делегат трассировки перед проверкой сохраненного SVG.
Проверьте исходный код, настроенный трассировщик и сохраненный SVG как отдельные этапы.

1. Запишите установленную версию и делегируйте

Запустите эти команды в своем терминале:

magick -version
magick -list delegate
magick -list format

Прочтите список делегатов для записи trace и запомните программу, которую она называет. В нашем списке была такая строка:

pnm<= trace      "'potrace' --svg --output '%o' '%i'"

Это запись конфигурации, а не команда для вставки в вашу оболочку. В качестве внешней программы трассировки он называет Potrace. SVG, который мы фактически сохранили, также содержал метаданные Created by potrace 1.16, связывающие эту конфигурацию с наблюдаемым выводом.

Список форматов ImageMagick полезен для проверки поддержки формата, но внимательно прочитайте его примечания по рендерингу SVG: информация о вводе/рендеринге Inkscape, RSVG и MSVG не доказывает, какая программа преобразует PNG в SVG. Чтение SVG и написание трассировки — разные направления.

Почему другая машина может вести себя иначе

Средство записи SVG в официальном исходном коде 7.1.2-32 включает отдельные маршруты для скомпилированной поддержки AutoTrace, настроенный делегат TRACE и встроенный резервный вариант PNG, если в этой ветке не найден делегат трассировки. Вот почему ни «ImageMagick всегда отслеживает», ни «ImageMagick встраивает только PNG» не являются надежным и общим ответом.

В источнике описаны доступные ветки; наша фактическая команда устанавливает, какой результат мы получили. Мы не тестировали каждую ветку или машину без делегата. Вышеуказанная версия является нашей установленной тестовой версией, а не претензией на последнюю версию ImageMagick.

2. Сохраните SVG и проверьте, что в нем содержится.

Используйте собственную разрешенную копию PNG. Наша точная тестовая команда была:

magick color-regions.png traced.svg

Замените color-regions.png именем входного файла и используйте новое выходное имя. Если команда не выполнена, сохраните ошибку и проверьте настроенную программу, прежде чем пытаться использовать несвязанные настройки рендеринга. Перечисленный делегат сам по себе не доказывает, что его исполняемый файл доступен и работает.

Откройте сохраненный SVG в текстовом редакторе. Ищите фактические элементы формы, такие как <path>, любой элемент <image> и его ссылочное содержимое, а также заполняйте как отдельные пути, так и родительские группы. Путь может наследовать черную заливку от окружающей группы; цвет не обязательно должен присутствовать на каждой линии пути.

В нашем файле родительская группа предоставила fill="#000000", два элемента пути описывали сохраненные фигуры, и не было элемента изображения. Это настоящая геометрия пути, но это не означает, что исходная палитра или все регионы сохранились. Для смешанного файла или файла на основе изображений используйте Руководство по проверке растрового содержимого SVG, а не гадать только по масштабу.

Каким стал наш цветной PNG в этой инсталляции

Мы создали оригинальный PNG-изображение размером 320 × 240 RGBA, содержащий прямоугольную рамку темно-синего цвета с пустым центром, золотой круг и бирюзовый треугольник на прозрачном фоне. Прозрачные пиксели имели белые образцы RGB. Мы выполнили приведенную выше команду с ImageMagick 7.1.2-32 и установили Potrace 1.16, затем проверили фактический источник SVG и отрисовали его независимо.

ПроверятьОригинальный PNGФактически сохраненный SVG
Темно-синяя рамка#17344dЧерная геометрия сохранена
Бирюзовый треугольник#347f78Черная геометрия сохранена
Золотой круг#e5aa39Отсутствующий
Проем рамы и внешнее пространствоПрозрачныйПрозрачный в визуализированном результате
Структура файлаРастровые пикселиДва пути, без элемента изображения

В руководстве по Potrace объясняется, что недвоичный ввод преобразуется в черно-белый с использованием ограничения яркости. Монохромный маршрут трассировки не переносит исходную палитру в виде отдельных цветных областей. В этом конкретном случае светло-золотой круг исчез, а более темная рамка и треугольник стали черными.

Увеличение входного разрешения или изменение имени файла SVG не может превратить монохромный результат в цветную трассировку. Если цвета имеют значение, выберите рабочий процесс трассировки цвета и проверьте полученные области. Если вам намеренно требуется одноцветное изображение, используйте явный рабочий процесс подготовки и трассировки PNG Potrace для управления этой отдельной задачей.

Это был один оригинальный цветной светильник в одной установленной сборке, поддерживаемый более ранним элементом управления «квадрат с отверстиями». Это была проверка цифрового файла, а не проверка импорта в редакторе, печати или обрезки. Счетчик путей описывает этот вывод; это не показатель качества.

Храните единицы размера отдельно от структуры пути

В нашем сохраненном SVG объявлены width="320.000000pt", height="240.000000pt" и viewBox="0 0 320.000000 240.000000". Соответствие числовых значений не делает точки, исходные пиксели и координаты SVG взаимозаменяемыми. Отдельно проверьте предполагаемый физический размер, используя рабочий процесс устранения неполадок с размером импорта SVG.

Выберите исправление, соответствующее выходным данным.

Наблюдаемый результатСледующее действиеПроверка
Черные пути, но нужны цветные регионыВыберите рабочий процесс трассировки цветаСравните важные регионы и заливки с исходным PNG.
Черные пути - это задуманное произведение искусства.Сохраняйте монохромный маршрут; проверить недостающие деталиПроверьте силуэт и необходимые проемы на контрастном фоне.
SVG содержит встроенный PNG вместо нужных вам фигур.Проверьте установленный маршрут трассировки или используйте специальный векторизатор.Проверьте объекты замещающего файла и изображения, на которые ссылаются.
Ошибка команды, связанная с делегатомПрочтите ошибку и проверьте доступность и конфигурацию указанной программы.Повторите тот же небольшой разрешенный ввод после устранения этой конкретной проблемы.
Пути существуют, но в другом приложении указан неправильный размер.Единицы измерения и размеры документа проверяйте отдельно.Подтвердите предполагаемый размер в принимающем приложении.

Фактическая ошибка команды и установленная конфигурация должны помочь в ремонте. В этом пошаговом руководстве не воспроизводится среда с отсутствующим исполняемым файлом или ошибкой политики, поэтому оно не предписывает универсального исправления для этих ошибок.

Для цветных изображений, которым все еще требуется SVG, PerfectVector предоставляет онлайн-процесс преобразования PNG в вектор. Начните с исходного PNG и сравните силуэт предварительного просмотра, цветовые области и пустые места. Точные фирменные цвета или мелкие буквы все равно могут нуждаться в проверке и исправлении; если критический контур неясен, следующим шагом может оказаться целенаправленная перерисовка. Руководство по качеству преобразования PNG в SVG описывает исходные и подробные решения.

Вы завершаете диагностику, когда можете назвать тип вывода, определить соответствующий маршрут отслеживания и объяснить, соответствует ли он вашим потребностям в цвете. Храните исходный код, сохраненный SVG и примечания к версии/конфигурации вместе. Чтобы опробовать PNG онлайн, начните с PerfectVector и сравните цветовые области и отверстия предварительного просмотра с оригиналом.

Часто задаваемые вопросы

Может ли ImageMagick конвертировать PNG в настоящие пути SVG?

Да, если установленная сборка и конфигурация обеспечивают трассировку маршрута. Наша установка ImageMagick 7.1.2-32 использовала Potrace 1.16 и сохраняла фактические пути без элемента изображения. Проверяйте свои собственные выходные данные, а не предполагайте, что каждая установка ведет себя одинаково.

Почему мой SVG-файл ImageMagick стал черно-белым?

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

Гарантирует ли запись SVG в списке форматов трассировку цвета?

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

Следует ли мне изменить настройки RSVG или MSVG, чтобы восстановить цвета PNG?

Сначала определите маршрут отслеживания выходных данных. Настройки рендеринга SVG и программа, отслеживающая PNG, отвечают на разные вопросы. Наш монохромный результат был получен делегатом трассировки Potrace, поэтому следующим решением было, подходит ли монохромная трассировка для произведения искусства.

Источники

  1. Ресурсы ImageMagick — файлы конфигурации и внешние делегаты.
  2. Форматы изображений ImageMagick — списки установленных форматов и примечания к рендерингу SVG.
  3. ImageMagick 7.1.2-32 Средство записи SVG — трассировка с привязкой к версии и ветки встроенных изображений.
  4. Руководство по Potrace — интерпретация монохромного ввода и поведение трассировки.

Ещё из блога

PerfectVector

Превратите изображение в
чистые редактируемые контуры

Векторизуйте и проверяйте предпросмотр бесплатно, без дневного лимита.