Векторная графика в Linux на примере редактора Inkscape

Некоторое время назад мне потребовалось оформлять плакат для выставки. У меня не возникло вопросов, в чём создавать плакат – разумеется, в векторном редакторе Inkscape! Однако мои молодые коллеги, с изумлением глядя на двухметровый плакат, предлагая самые безумные версии от Microsoft Paint до Word, под конец закидали меня вопросами о том, где бы такое сделать. Пост написан по результатам наших бурных обсуждений и моих скромных находок.

Векторная графика
Если очень кратко, то дело обстоит так: растровая графика оперирует с пикселями и их значениями, в то время как для векторной графики существуют линии, кривые и узлы. В растровой графике, например, чёрный прямоугольник будет задан множеством чёрных точек – пикселей. В векторной – прямоугольником со сторонами A и B, толщиной линии, и цветом линии и заливки. Разница будет ещё очевиднее, если вы захотите нарисовать изогнутую линию. В растровом виде это будет сделать трудно, зато в векторном – легче лёгкого: вам помогут кривые Безье, которые можно представить как гибкую линейку. Задаём точки и изгибы в каждом узле, и получаем кривые самых невообразимых видов.

Векторная графика имеет ещё одно большое преимущество: масштабируемость. То есть если вы сделали плакат на формат А4, а печатать надо на формат А0, с векторной графикой нет проблем – просто растянули и всё. С растровой вы обязательно получите артефакты, квадратики и прочую гадость.

Не буду пересказывать википедию, так как многие вещи лучше просто попробовать и понять, нужны они вам или нет. Тем более, что в Debian это делается щелчком мыши \ одной командой: установить inkscape. Почему именно Inkscape? Это самый продвинутый и доведённый до ума это векторный редактор в Linux (если среди читателей есть те, кто ищут аналог Adobe Illustrator в Linux – так вот это он :-)). Есть его Gimp-подобный аналог Sodipodi, но активности оттуда что-то не видно. Развивается проект sK1, но до повседневного использования ему ещё далеко. В общем, все примеры будут приводиться исключительно для Inkscape.

Inkscape – быстрый старт

Для примера приведу свой плакат с выставки – он целиком сделан в Inkscape.
После запуска нас ждёт главное окно программы: панель инструментов рисования слева (выделено синим цветом на скриншоте), цветовая палитра внизу (там же управление слоями – выделено жёлтым), и несколько полезных кнопок на главной панели сверху (группировка\разгруппировка объектов, свойства текста, выравнивание объектов – группа выделена зелёным цветом). Собственно, скриншот во всей красе:

Есть несколько интересных и полезных возможностей в Inkscape, которые могут пригодиться каждому, кому хоть раз приходилось делать для себя или других плакаты. Ну, как нарисовать кружочек или квадратик я говорить не стану – это можно легко догадаться самому. Интереснее другое: например, нужно нарисовать сложный объект. Для этого выбираем инструмент “Произвольные контуры” (с иконкой простого карандаша) и отводим душу в творчестве.
После всего этого любуемся результатами своего художественного мастерства и, например, замечаем, что вот этот уголок хорошо бы сгладить, а этот бугорок вообще не нужен.

Это легко поправить: выбираем инструмент “Редактировать узлы контуров” (стрелка с узлом, помечено на скриншоте красным цветом). После этого выбираем фигуру, которую нарисовали, и начинаем дёргать за узлы (чтобы их переместить) или “усы”, которые от узлов отходят (они отвечают за изгиб кривой). С узлами можно поступать как с любыми другими объектами – удалять, добавлять или изменять. Для этого, после выбора инструмента “Редактировать узлы контуров”, появится группа инструментов на верхней панели (отмечено зелёным цветом на скриншоте), которые позволят это сделать. Немного тренировки, чуток практики, и вы будете рисовать как завзятых художник.

Стрелки в Inkscape
Как-то мимо меня пробегала ссылка на пост, в котором автор рыдал в три ручья об отсутствии возможности в Inkscape ставить стрелки на линиях – очень нужная опция для рисования схем и простых чертежей. И она-таки в Inkscape есть, причём сокрыта не очень глубоко: по нарисованной линии щёлкаем правой кнопкой, выбираем пункт контекстного меню “Заливка и штрих”, идём в “Стиль штриха”, и там выбираем любую понравившуюся нам стрелку в пункте “Конечные маркеры” и “Начальные маркеры”. Результат на скриншоте:

Об эстетике результата можно спорить, но стрелку в Inkscape поставить можно запросто. Может она не по ГОСТ ил ISO, но выглядит приемлемо и нареканий особых не вызывает.

Интересные возможности Inkscape
Немного потренировавшись рисованию в Inkscape, вы заметите, что часть инструментов (линии, текст, градиент, пипетка) вам уже знакомы из Gimp. Но так как Inkscape векторный редактор, а не растровый, в нём есть и отличия: например, инструменты для выравнивания объектов (на главной панели, вверху, на скриншоте помечено голубым цветом). Например, мне нужно было выровнять названия и прямоугольные блоки по центральной оси. Этим-то инструментом выравнивания я и воспользовался:

В Inkscape можно проворачивать много трюков – так много, что можно даже завести отдельный блог для этого 🙂 Но я все описывать не стану, а только те, которые мне реально пригодились (и детали которых я часто забываю).

Трассировка растровой графики в векторную в Inkscape
Часто удобно хранить вставляемые в Inkscape изображения в векторном виде – но картинка-то изначально растровая! В самом Inkscape есть очень и очень приличный плагин трассирования растровых изображений в векторные – он использует трассировщик potrace. Хотя работает трассировщик не быстро и имеет минимум параметров, результат очень хорош. Например, он позволяет быстро и точно трассировать сложные логотипы, которые некоторые несознательные граждане присылают в растровом виде.
Для того, чтобы им воспользоваться, импортируем в Inkscapе растровое изображение, выделяем его и идём в меню “Контуры” искать пункт “Векторизовать растр…”. Перед нами появится незамысловатый диалог:

в котором, подбирая параметры трассирования, можно получить очень похожий на оригинал векторизованный рисунок.

Временное сокрытие сложных объектов

Вот это было для меня крепким орешком: дело в том, что в плакате были сложные отрассированные объекты, которые сильно тормозят отрисовку. Часто нужно их просто скрыть на некоторое время, и не городить при этом слоёв. Вроде бы всё просто: для этого можно выделить объект, нажать правую кнопку и в свойствах объекта поставить флажок “Hidden”.

В документации по этому поводу говорится:
While these are solutions, the ultimate solution is just to not
hide objects. Instead put them on a separate Layer and hide the
Layer (see the section called “Layers”).

Я не могу с ними согласиться: иногда слоёв и так много, и городить ещё один совсем не хочется. Потом, чаще всего объект перерисовывается и хочется просто оставить его на месте и вообще не трогать. Наконец, сдаётся мне, что такие вот “ultimate solution” есть дешёвая отмазка при отсутствии инструментов работы со скрытыми объектами: дескать, сие не баг но фича. Но мы-то знаем… 🙂

Но тут появляется маленькая проблема: как его обратно показать!? Это (по крайней мере в версии 0.45) несколько неочевидно. Это даже стало поводом для скриншота:
Так вот, чтобы сделать объект снова видимым, сначала щёлкаем на любом видимом объекте и открываем окно “Свойства объекта”. Далее нажимаем CTRL+F для поиска, отмечаем галку “Включая скрытые”, и в поле Стиль подставляем display:none

Ищем – Inkscape будет по очереди находить скрытые объекты. Когда он доберётся до искомого, отобразится его (скрытого объекта) рамка. Тут-то нам и пригодится заблаговременно открытое окно “Свойства объекта” – оттуда мы убираем галку “СКРЫТЬ” у найденного скрытого объекта. Всё, он должен снова стать видимым.

Есть ещё такой вариант: нажимать на кнопку TAB для выделения объектов и смотреть, когда появится рамка вокруг скрытого объекта. При этом в настройках Inkscape (Файл – Настроить Inkscape – Выделение) должна быть снята галка “Игнорировать скрытые объекты”.

Заключение
Это, разумеется, далеко не полный перечень возможностей Inkscape (которые к тому же постоянно развиваются). Здесь я только упомянул о нескольких вещах (трассировка, выравнивание и особенно сокрытие объектов, о котором я постоянно забываю). Буду рад, если для кого-то векторные редакторы станут ещё одним полезным инструментов для работы и творческого самовыражения.

Поділіться своєю любов'ю

Залишити відповідь

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x