Мы постарались сделать параметры вывода как можно более понятными, но здесь вы найдете все мельчайшие подробности:
Создаваемые нами векторные изображения состоят из фигур, которые состоят из самонепересекающихся циклов. Циклы — это последовательности кривых, где каждая кривая начинается там, где заканчивается предыдущая, и где последняя кривая заканчивается там, где начинается первая. Мы производим линии, дуги окружности и эллипсы, а также квадратичные и кубические кривые Безье.
Фигуры всегда имеют ровно один «положительный» цикл, который определяет область, которая должна быть заполнена цветом фигуры. В некоторых случаях фигуры могут также иметь «отрицательные» циклы, которые представляют собой вырезы, которые не должны заполняться цветом фигуры. Отрицательные циклы должны быть полностью заключены в положительный цикл фигуры и не должны касаться друг друга.
Для входных изображений, содержащих линейные рисунки или другую обводную геометрическую графику, например чертежи САПР, графики, технические диаграммы и т. п., естественно ожидать, что на выходе мы получим обводную геометрическую графику. Этот стиль векторизации называется трассировкой по осевой линии. В настоящее время мы не поддерживаем трассировки по осевой линии, поэтому вся обводная геометрическая графика представляется в виде узких фигур с заливкой.
Обратите внимание, что раздел «Стиль штрихов» предназначен для стилизации штрихов тех контуров, которые составляют фигуры с заливкой. Это не связано с трассировкой по осевой линии.
Когда две фигуры в векторном изображении находятся рядом друг с другом, так что их границы точно совпадают, многие механизмы векторного рендеринга все равно будут рисовать их таким образом, что между ними будет видна узкая белая линия. Это дефект движков рендеринга, но он настолько распространен, что, скорее всего, в ближайшее время не исчезнет.
Мы разработали то, что мы называем заполнитель пробелов, чтобы обойти эту проблему. Он рисует узкую линию под границей между двумя фигурами и цветом, который является средним значением двух цветов фигур. Это предотвращает просвечивание фона и эффективно решает проблему.
Штрихи, нарисованные с постоянной шириной независимо от уровня масштабирования, называются немасштабируемыми штрихами. Эта функция полностью поддерживается в SVG и нашем векторном растеризаторе PNG, а также частично поддерживается в EPS, PDF и DXF.
SVG поддерживает произвольную немасштабируемую ширину штрихов и пользуется широкой поддержкой среди средств просмотра и редактирования SVG, за исключением Adobe Illustrator, где немасштабируемый стиль игнорируется, а штрих масштабируется в зависимости от уровня масштабирования. Наш векторный растеризатор PNG также полностью поддерживает немасштабируемые штрихи.
И EPS, и PDF поддерживают только немасштабируемые штрихи с неопределенной минимальной шириной экрана, которая обычно считается равной или уже ширины пикселя. Adobe официально не рекомендует их использование, и тесты с Illustrator 2023 показывают значительные дефекты в обработке этого стиля.
DXF также поддерживает немасштабируемые штрихи с минимальной шириной экрана, и это очень распространенный стиль обводки в файлах DXF.
В целом мы рекомендуем использовать немасштабируемые штрихи только для SVG, DXF и PNG.
Векторные изображения состоят из фигур, которые рисуются в определенном порядке, обычно в том порядке, в котором они появляются в файле, определяющем векторное изображение.
Порядок прорисовки некоторых фигур можно изменить без изменения внешнего вида векторного изображения. Например, рассмотрим две отдельные точки на прямоугольнике. Прямоугольник должен быть нарисован до точек, но любая точка может быть нарисована до того, как будет нарисована другая точка, не влияя на внешний вид векторного изображения.
Любой такой набор фигур, внутреннее переупорядочение которых не меняет внешний вид изображения, может находиться на одном и том же слое. Слои должны быть нарисованы по порядку, но фигуры внутри слоя можно переупорядочивать или объединять в группы без изменения внешнего вида изображения.
Мы поддерживаем различные форматы файлов экспорта, но не все форматы поддерживают все функции.
SVG 1.1, безусловно, является наиболее часто используемой версией SVG, но для наших выходных файлов она отличается от SVG 1.0 только своим заголовком.
Ни один из них формально не поддерживает немасштабированные штрихи, которые были представлены в SVG Tiny 1.2 и являются частью еще не выпущенной спецификации SVG 2.0. На практике немасштабированные штрихи поддерживаются большинством основных программ просмотра и редакторов, поэтому мы допускаем их использование во всех наших выходных файлах SVG.
Инкапсулированный Postscript (EPS) — это устаревший формат, созданный Adobe и используемый в основном для печати. В нем отсутствует поддержка группировки и прозрачности, а также ограничена поддержка немасштабируемых штрихов.
В настоящее время мы экспортируем EPS версии 3, которая чаще всего используется.
Переносимый формат документов Adobe (PDF) в основном используется в качестве формата обмена документами, но также содержит достаточно полнофункциональные возможности векторной графики. PDF не поддерживает группировку и имеет ограниченную поддержку немасштабируемых штрихов.
Мы экспортируем PDF версии 1.4, самой ранней версии, поддерживающей прозрачность.
Формат обмена чертежами AutoCAD (DXF) является широко используемым форматом обмена файлами САПР. Хотя спецификация DXF поддерживает слои (группы) и все доступные типы кривых, поддержка программ чтения DXF значительно различается.
Мы экспортируем DXF версии AC1021 (2007 г.).
Переносимая сетевая графика (PNG) — это формат растрового изображения, поддерживающий прозрачность. PNG — это растровый, а не векторный формат, но мы поддерживаем экспорт в него, потому что он очень часто используется для изображений, которые мы производим.
Сейчас мы не поддерживаем произвольные коэффициенты масштабирования. Результат в PNG, который мы производим, ровно в 4 раза шире и выше исходного изображения, вплоть до 4 мегапикселей. В будущем эти ограничения будут сняты.
Процесс векторизации создает набор путей, которые определяют фигуры, присутствующие в изображении. Наиболее естественно заполнить эти фигуры соответствующими цветами, чтобы итоговое изображение выглядело почти так же, как входное растровое изображение, но с более четкими границами и возможностью масштабирования без ухудшения качества.
Но некоторые приложения больше интересуются самими путями, и в этом случае имеет смысл обводить фигуры или границы между фигурами.
Обведите все кривые фигуры точно так же, как если бы вы заполняли их, но со стилем рисования, определяемым стилем обводки, а не неявным стилем заливки.
Если две фигуры соприкасаются, край между ними будет обведен дважды: по одному разу для каждой фигуры.
Вырезы всегда производят две обводки на край. Сложенные фигуры создают одну обводку между фигурой и фигурами, что полностью в нее входят, и две обводки между соседними фигурами, если ни одна из них не содержит другую.
Обведите все края между фигурами один раз.
В отличие от обводки фигур, которая обычно обводит каждый край дважды (по одному разу для каждой примыкающей фигуры), этот стиль рисования обводит каждый край между фигурами только один раз.
Это полезно для лазерной гравировки, резки винила и т.п.
Фиугры векторного изображения можно представить как наложенные друг на друга или как вырезанные друг из друга. Мы можем сделать любой вариант.
Поместите фигуры в вырезы в фигурах ниже. Это означает, что все фигуры образуют один слой, и ни одна фигура не находится поверх другой.
Это упрощает функцию заполнения пробелов, поскольку позволяет размещать все обводки заполнителя пробелов в одном слое под всеми фигурами. При этом потребуется больше обводок заполнителя пробелов, поскольку они необходимы, когда фигуры находятся рядом друг с другом и соприкасаются, а не когда одна фигура находится поверх другой.
Это также приводит к увеличению размера файла из-за необходимости включить кривые, определяющие вырезы.
В зависимости от изображения и ваших предпочтений это также может упростить или усложнить редактирование результата в векторном редакторе. В частности, вырезы упрощают отделение одного компонента изображения от другого, поскольку визуальная форма каждого компонента не зависит от какого-либо другого компонента, который может быть размещен поверх него. И наоборот, если нужно сохранить все части изображения вместе, вырезы усложняют редактирование точной формы компонента, поскольку редактирование фигуры потребует внесения соответствующих изменений в вырез, в котором она находится.
Поместите фигуры друг на друга. Представьте себе многослойный торт, в котором меньшие ярусы укладываются поверх больших.
Этот параметр обычно минимизирует размер файла и количество штрихов заполнителя пробелов. Но это усложняет функцию заполнения пробелов, потому что штрихи заполнителя пробелов должны чередоваться между фигурами, для которых они необходимы, и фигурами, которые их содержат. Это имеет дополнительный побочный эффект: иногда небольшие части обводки заполнителя пробелов выступают за пределы фигур, для которых они предназначены. Мы можем решить эту проблему, используя немасштабируемые обводки или обрезая обводки заполнителя пробелов. Мы рекомендуем по возможности всегда использовать немасштабируемые обводки.
Сложенные фигуры также упрощают редактирование границы между одной фигурой и фигурой под ней, поскольку эта граница не дублируется в вырезе. Но это может затруднить выделение одного компонента изображения, поскольку внешний вид каждой фигуры зависит от фигур, которые расположены поверх нее.
Форматы векторных файлов, такие как SVG, поддерживают объединение нескольких фигур в группы. Такие группы в первую очередь полезны для организационных целей и для облегчения редактирования, поскольку позволяют вносить изменения во все фигуры в группе одновременно.
SVG полностью поддерживает группы. Ни EPS, ни PDF не поддерживают группы. DXF поддерживает слои, которые аналогичны группам.
Этот раздел управляет тем, как фигуры группируются вместе.
Сгруппируйте фигуры по цвету заливки.
Когда для режима «Наложение фигур» выбрано «Вырезки», все фигуры заданного цвета образуют единую группу.
Когда для режима «Наложение фигур» установлено значение «Наложение», обычно невозможно сгруппировать вместе все фигуры определенного цвета, так как все части группы должны занимать одно и то же место в порядке прорисовки векторного изображения. По этой причине в наложенных изображениях мы группируем только фигуры заданного цвета, которые находятся в одном и том же слое.
Сгруппируйте вместе все фигуры, имеющие одного и того же родителя.
Если фигура полностью содержится в другой фигуре, мы считаем внешнюю фигуру родителем внутренней фигуры. Для всех фигур, которые не полностью содержатся в другой фигуре, само векторное изображение выступает в качестве родителя, и они группируются вместе.
Сгруппируйте фигуры вместе в соответствии со слоем их порядка прорисовки.
Слои порядка прорисовки — это группы фигур, внутренний порядок прорисовки которых можно свободно изменять без изменения внешнего вида изображения.
Мы поддерживаем специальную идентификацию определенных параметризованных фигур, таких как круги, эллипсы, прямоугольники, равнобедренные треугольники и звезды, все это с произвольными углами поворота и радиусами углов. Подгонка этих общих фигур дает фигуры с идеальной геометрией и последовательной обработкой углов. Некоторые форматы экспорта имеют встроенную поддержку некоторых из этих фигур, и мы воспользовались этим, чтобы упростить редактирование полученных файлов.
Мы предлагаем детальный контроль над тем, какие типы кривых можно экспортировать. Каждый формат файла и некоторые другие параметры также имеют свои ограничения на допустимые типы кривых, и всегда используются наиболее ограничивающие параметры.
Квадратичные кривые Безье, поддерживаемые SVG, DXF и нашим векторным растеризатором PNG, определяются двумя конечными точками и одной контрольной точкой. Направление касательной кривой в конечной точке всегда параллельно линии, соединяющей эту конечную точку с контрольной точкой.
Если квадратичные кривые Безье отключены, мы возвращаемся к кубическим кривым Безье, эллиптическим дугам и линиям в указанном порядке.
Кубические кривые Безье, поддерживаемые всеми форматами экспорта, определяются двумя конечными точками и двумя контрольными точками. Направление касательной кривой в конечной точке всегда параллельно линии, соединяющей данную конечную точку с соответствующей контрольной точкой.
Если кубические кривые Безье отключены, мы возвращаемся к линиям.
Поддерживаемые SVG, DXF и нашим векторным растеризатором PNG, дуги окружности определяются центром, радиусом, начальным углом и углом развертки.
Если дуги окружности отключены, мы возвращаемся к эллиптическим дугам, кубическим кривым Безье и линиям в указанном порядке.
Эллиптические дуги, поддерживаемые SVG, DXF и нашим векторным растеризатором PNG, определяются центральной, большой и малой осями, углом поворота, начальным углом и углом развертки.
Если эллиптические дуги отключены, мы возвращаемся к кубическим кривым Безье и линиям в указанном порядке.
В случае, если какие-либо кривые должны быть преобразованы в один или несколько сегментов линии, этот раздел предлагает контроль над качеством подгонки.
Как отмечалось выше, почти повсеместный дефект в механизмах растеризации векторных изображений заключается в том, что цвет фона может просвечиваться между соприкасающимися друг с другом фигурами, даже если между лежащей их основе геометрии нет фактического разрыва. Обычно это отображается в виде тонких белых линий, разделяющих результат на кусочки пазла.
Чтобы решить эту проблему, вы можете включить функцию «заполнение пробелов», которая размещает небольшие штрихи позади и между соприкасающимися фигурами, используя средний цвет двух этих фигур. Это предотвращает просвечивание фона.
Если для параметра «Стиль рисования» задано значение «Обвести фигуры» или «Обвести границы», этот раздел управляет стилем штрихов.