Выпущен Inkscape 0.46

Выпущена новая версия популярного свободного редактора векторной графики Inkscape. Мы подготовили традиционный подробный обзор изменений.

Вот основные новшества в этой версии:

  • Существенное ускорение работы
  • Новый инструмент Заливка: создание контуров из замкнутых областей одним щелчком
  • Новый инструмент Корректор: простое редактирование фигур и цвета
  • Новый инструмент Параллелепипед: перспектива в Inkscape
  • Полноценное редактирование градиентов на холсте
  • Инструментарий для гравировки
  • Касательное выделение
  • Поддержка почти всех фильтров SVG и интерфейс к ним
  • Динамические контурные эффекты
  • Эффекты обработки растра
  • Управление цветом
  • Встроенный импорт PDF и AI, импорт и экспорт XAML, импорт CDR
  • Интеграция с Open Clip Art Library
  • Библиотека текстур
  • Касательное выделение
  • Швартующиеся к правому борту окна диалоги
  • Коррекция цвета жестами мышью
  • Доступ к verbs из командной строки
  • Улучшения в работе с сетками и направляющими, полноценное прилипание
  • Сотни менее заметных новшеств и исправление ошибок

А теперь по порядку.

Скорость и интерактивность

  • В этой версии Inkscape начинает использовать библиотеку Cairo для отрисовки векторной графики на мониторе. Сейчас эта библиотека используется только для каркасного режима отображения, что ускоряет перерисовку примерно на 25%. Но еще больше впечатляет экономия в использовании памяти: благодаря Cairo в каркасном режиме Inkscape занимает примерно на 50% памяти меньше, чем 0.45 с теми же файлами.
  • Направление быстрой перерисовки: при работе со сложными документами и/или на медленных компьютерах Inkscape перерисовывает изображение на экране горизонтальными полосами сверху вниз. Теперь перерисовка всегда начинается от курсора вверх и вниз одновременно, так что область вокруг курсора всегда оказывается перерисованной в первую очередь. В ряде случаев это существенно ускоряет реакцию программы. К примеру, если раньше вы редактировали узлы сложного контура, программе приходилось целиком перерисовывать этот контур при каждом изменении. Но теперь перерисовка начинается от курсора, т.е. узла, над которым вы сейчас работаете. Больше того, эта перерисовка прерываема, так что каждое движение мышью запускает новую перерисовку от области курсора мыши. В результате при работе над такими областями документа возникает ощущение быстроты перерисовки, хотя далеко отстоящие от курсора области скорее будут отставать.
  • Ускоренный экспорт рисунков с размыванием и высокое качество отрисовки на экране: теперь Inkscape использует фильтр IIR (Infinite Impulse Response) для размывания с большим радиусом, что существенно ускоряет перерисовку размытых объектов на большом приближении и при экспорте с высоким разрешением (или просто с очень большим радиусом размывания). С другой стороны, результаты являются аппроксимацией к настоящему гауссову размыванию, так что перерисовка может отличаться от математически точного размывания (хотя обычно разница невооруженным глазом не видна). Этот код основан на работе “Recursive Gaussian Derivative Filters” за авторством L.J. van Vliet, I.T. Young и P.W. Verbeek (более подробная информация указана в исходном коде).Экспорт рисунков, содержащих размытые объекты, в версии 0.45 был достаточно медленным; некоторые файлы экспортировались часами; теперь это исправлено, частично — благодаря более быстрому алгоритму, упомянутому выше, частично — за счет исправленной ошибки в коде экспорта. Теперь даже очень сложные файлы с объектами, где очень большой радиус размывания, экспортируются всего за несколько минут даже на высоком разрешении.
  • Небольшие изменения внесены в производительность рендеринга градиентов.
  • Программа стала реагировать быстрее на перетаскивание ручек и узлов, а также перетаскивание и трансформацию объектов, так что работа со сложными рисунками и, в особенности, редактирование сложных узлов стали проще. В частности, исправлена ошибка, когда узел или ручка по инерции следуют за курсором мыши даже после того, как отпущены.
  • Перемещение объектов, узлов и ручек градиентов с клавиатуры, равно как и масштабирование и вращение объектов стало откликаться гораздо быстрее. Теперь если нажать клавишу и быстро перетащить ручку, будет сразу нарисована конечная версия объекта, а не все промежуточные варианты.
  • Курсор больше не тормозит при перемещении по документами с очень сложными контурами.
  • Перемещение по холсту происходит более плавно за счет того, что программа больше не пытается перерисовать холст во время движения мыши и старается перерисовывать только отображаемые на экране части документа;
  • Интерфейс в целом быстрее откликается на действия пользователя:
    • при масштабировании отображения регулятор масштаба в правом нижнем углу обновляется немедленно, а не после перерисовки документа;
    • при выполнении многих потенциально медленных операций (сохранение, упрощение, разбивание контуров) программа показывает курсор занятости и сообщение в статусной строке документа (например, «Сохраняется документ…»).
    • при рисовании фигур сообщения в статусной строке не отстают от реальности.
  • Команды «Объединить» и «Преобразовать в контур» работают в разы быстрее при работе с выделениями, в которых сотни и тысячи объектов.
  • Ускорено время прилипания одних объектов к другим.

Инструменты

Трассирующая заливка

Новый инструмент заливки работает именно так, как и должен: вы находите замкнутую область и щелкаете внутри нее, а инструмент создает из нее векторный контур и заливает его указанным цветом.

Как она работает

Следует помнить, что инструмент в некотором смысле уподобляется человеческому зрению и не является строго геометрическим, а потому любые изменения в цвете он принимает за окончание замкнутой области и будет останавливаться на градиентах, размывках и любых цветовых переходах. Кроме того, любая замкнутая область, которая из-за полупрозрачности на фоне выделяется неявно, будет попросту проигнорирована. Таким образом, инструмент заливки работает аналогично инструменту заливки в растровом редакторе вроде Photoshop или GIMP с той лишь разницей, что в конце вы получаете новый векторный объект.

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

Изнутри процедура векторизации выглядит так: инструмент создает растровую заливку найденной замкнутой области, трассирует ее в контур при помощи potrace и помещает этот контур в документ.

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

Разрешение векторизуемого растра зависит от текущего масштаба отображения рисунка. Чем больше приближение, тем больше разрешение. Так что если полученный контур оказался недостаточно точным, отмените его создание, приблизьте рисунок и попробуйте снова. И, напротив, если заливка вырывается за пределы «стенки» между нужной областью и смежной, уменьшите вид документа и попробуйте снова (либо используйте функцию автозакрытия интервалов, см. ниже).

Небольшая иллюстрация:

Стиль

Подобно инструментам рисования фигур, инструмент заливки может применять последний использованный стиль или же собственный фиксированный стиль. Переключаться между ними можно в диалоге настройки (Ctrl+Shift+P) на вкладке параметров этого инструмента. Стиль для следующей заливки также отображается на индикаторе вверху справа.

Параметры

У инструмента есть ряд параметров, доступных через панель параметров активного инструмента:

  • Чем залить — все видимые цвета, либо один из следующих каналов:
    • Красный
    • Зеленый
    • Синий
    • Тон
    • Насыщенность
    • Яркость
    • Альфа-канал
  • Порог (в процентах) — насколько должен отличаться цвет границы от цвета замкнутой области, чтобы на нем заливка остановилась. Если значение равно нулю, заливаться будет только та область, которая идентична пикселу, по которому щелкнули. Чем больше значение, тем проще заливке перелиться в соседнюю область. По умолчанию значение равно 10%.
  • Увеличить/уменьшить на — количество втяжки/растяжки конечного контура, положительное значение увеличивает контур (что полезно для сглаживания краев при небольшой ошибке векторизации), отрицательное — уменьшает. Принцип работы примерно тот же, что у втяжки и растяжки, просто здесь они выполняются автоматически.
  • При помощи параметра «Закрыть интервалы» можно заставить инструмент «перешагивать» через тонкие «стенки» между соседними областями. Доступны четыре варианта:
    • «Нет»
    • «Маленькие» (до 2px)
    • «Средние» (4px)
    • «Большие» (6px)

    Обратите внимание, что если использовать вариант «Нет», на заливку больших областей может уходить много времени.

Горячие клавиши

При работе с инструментом используются следующие клавиатурные комбинации:

  • Одиночный щелчок выполняет заливку от точки щелчка.
  • Shift+щелчок выполняет заливку от щелчка и присоединяет полученный контур к уже выделенному. Так что если с первой попытки идеальный контур не получился, оставшиеся части можно по очереди присоединить к первому результату.
  • Ctrl+щелчок по любому векторному объекту меняет его заливку на текущую заливку инструмента, если при этом нажать еще и Shift, то замена коснется обводки, а не заливки.
  • Щелчок с последующим перетаскиванием приведет к заливке всех точек, которых коснется инструмент, что делает возможным заливку градиентных областей и размывок.
  • Alt+щелчок и перетаскивание работает как обычное перетаскивание с той разницей, что заливка применяется и к тем точкам, которые похожи на исходную (т.е. ту точку, с которой началось перетаскивание). Так что если на рисунке есть схожие по цвету, но разделенные области, используйте эту комбинацию для их заливки.

Корректор

Новый инструмент под названием Корректор (Tweak tool) размывает строгие рамки между растровой и векторной графикой. Теперь вместо того, чтобы ковыряться с каждым объектов по отдельности достаточно выделить все нужные и кистью Корректора плавно и мягко применить нужные изменения к форме или стилю тех объектов, которых коснулась кисть.

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

Инструмент работает с любым числом выделенных объектов. Вы можете выделить все объекты рисунка по Ctrl+A и размазать их в режиме толкания или перекрасить в режиме раскраски. Вы можете использовать его и в группах; инструмент автоматически зайдет в группу и будет работать с индивидуальными объектами. Если вы попытаетесь использовать его при отсутствии выделения, вам об этом сообщат через статусную строку окна программы.

Ширина

Ширина кисти варьируется от 1 до 100 и может быть изменена либо через панель параметров инструмента, либо с клавиатуры стрелками влево и вправо (как и у каллиграфического пера) в любой момент, в том числе прямо во время рисования. Клавиши Home и End делают ширину минимальной или максимальной соответственно. Как и у каллиграфического пера, ширина корректорской кисти относительна к масштабу отображения документа, так что зачастую проще изменить масштаб, чем ширину кисти, чтобы охватить меньшую или большую часть объекта.

Сила

Значение силы применяемого эффекта также варьируется между 1 и 100 и может быть изменено во время рисования при помощи клавиш-стрелок вверх и вниз.

Если вы пользуетесь планшетом, распознающим силу нажатия стилусом, а кнопка распознавания силы нажатия находится в положении «включено», то сила нажатия стилусом также будет учитываться, варьируясь между нулем и тем значением, которое указано в панели параметров. При работе мышью сила нажатия всегда будет постоянной и равной значению в панели параметров инструмента.

Режимы, корректирующие контур

У Корректора есть несколько режимов, между которыми можно переключаться щелчком по соответствующей кнопки в панели параметров инструмента или по комбинации клавиш. Часть режимов меняет форму выделенных контуров, а часть — их цвета. Для всех этих режимов параметры ширины кисти и силы воздействия актуальны, но в остальном они все же различны. Сначала изучим режимы изменения формы контуров.

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

И хотя для технических иллюстраций этот инструмент вероятнее всего будет бесполезен, художники несомненно оценят его возможности при работе над эскизами, мультфильмами, анимешными рисунками и прочим. В чем-то инструмент похож на инструменты «Pucker» и «Bloat» из недавних новых версий Adobe Illustrator.

Сейчас у инструмента есть шесть режимов, меняющих форум контуров: Выталкивание, Втяжка, Наращивание, Притяжение, Отталкивание и Огрубление.

  • Используемый по умолчанию режим выталкивания попросту перемещает попавшую под кисть часть объекта в направлении перетаскивания. Благодаря тому, что контур меняет очень плавно, при помощи Корректора в этом режиме достаточно легко получить сложные и естественно выглядящие фигуры, когда-то бывшие обычным прямоугольником или овалом. При гравировке параллельными штрихами с помощью каллиграфического пера использование выталкивания позволяет однообразно скручивать, щипать или искажать насечки.
  • Втяжка и Наращивание — два противоположных режима, перемещающие внутрь или наружу каждую точку контура в направлении, перпендикулярном области контура в этой точке. Эти режимы похожи на втяжку и растяжку контура, но позволяют менять части контура, а не весь контур сразу.Таким образом, к примеру, можно менять толщину насечки при гравировке. Кроме того, зачастую концу штрихов каллиграфическим пером далеки от идеала — они могут быть слишком тупыми или, напротив, быть с уродливыми блямбами на концах. И здесь на выручку приходит Корректор. Выделите все штрихи-насечки и сделайте легкую втяжку кистью Корректора, чтобы линии штрихов стали тоньше, вплоть до полного исчезновения. Если нажимать стилусом планшета слишком сильно, инструмент превратится в ластик, которым можно будет стирать концы штрихов, делая их тоньше, острее и однообразнее. И наоборот, использование режима Наращивание позволит сделать штрихи толще (насечки станут более глубокими).Разумеется, втяжка и наращивание годятся не только для коррекции каллиграфических штрихов. С их помощью можно вылеплять любые другие контуры, порождая плавные паточные отростки при помощи наращивания и выскабливая дыры втяжкой. В отличие от лепки инструментом правки узлов это не требует создания новых узлов вручную.
  • Работа режимов Притяжение и Отталкивание похожа на действие магнита: они либо притягивают каждую попавшую под курсор точку контура к центру кисти, либо отталкивают ее. В некоторых случаях эффект будет схож с эффектом режимов втяжки и наращивания, но разница состоит в том, что втяжка/наращивание перемещают контуры перпендикулярно контуру в каждой его точке, в то время как притяжение/отталкивание перемещают точки в сторону курсора или от него вне зависимости от формы контура. Эти режимы похожи на эффект щипка в AI, их можно использовать для центрально-симметричных искажений контуров.
  • Режим огрубления делает ровно то, в чем его можно заподозрить: рисует по краям контура заусенцы, не меняя его общую форму. Легкое огрубление создает эффект неровности, в то время как сильное огрубление превращает края контура в чудовищные рытвины. Обратите внимание на то, что эта операция, особенно в сочетании с большим значением точности, создает в контуре большое число новых узлов, что заметно увеличивает размер документа и замедляет работу Inkscape. В частности, выталкивание, втяжка и наращивание такого контура могут превратиться в муку, так что мы рекомендуем сначала завершить работу над формой объекта, и уж потом огрублять его края.

Точность

Любая коррекция формы контура так или иначе искажает его, даже если вы корректировали только часть контура. Эти искажения похожи на действие команды упрощения. Значение точности (также варьирующееся между 1 и 100, значение по умолчанию равно 50) позволяет контролировать заметность таких искажений. Чем выше точность, тем меньше искажение и тем больше число узлов, создаваемых для поддержания исходной формы контура, что, опять же, влияет на размер документа и производительность программы.

Оптимальное значение точности определяется характером рисунка, над которым вы работаете. Если вы лепите аморфную кляксу, точности в 20 единиц будет вполне достаточно. Если же вы корректируете форму нескольких букв в тексте, вам вряд ли захочется потерять форму тех букв, которых коррекция не касается, так что придется повысить значение точности хотя бы до 80.

Известные недочеты

У корректирующих форму контура режимов Корректора есть ряд известных недочетов:

  1. Они не работают с незамкнутыми контурами (такой контур мигом превращается в замкнутый, стоит лишь кисти коснуться его);
  2. Они достаточно медлительны;
  3. Они быстро отжирают память и
  4. порой они делают глупые ошибки — например, тонкие каллиграфические штрихи могут неожиданно исчезнуть или кардинально сменить форму при втяжке или наращивании.

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

Иногда после огрубления дальнейшая коррекция может стать невозможной, что сопровождается малоприятными сообщениями вроде:

WARNING **: Shape error in ConvertToShape: directedEulerian(a) == false

Все эти беды — от библиотеки livarot, которая сейчас используется для геометрических манипуляций с контурами. Как только мы заменим ее на lib2geom, избавиться от них будет намного проще.

Режимы коррекции цвета

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

  • Раскрашивание применяет стиль инструмента (отображаемый вверху справа) к объектами, попадающим под кисть. Стиль инструмента можно поменять щелчком по палитре образцов, либо выбрав его в диалоге «Заливка и обводка». (Примечание: когда Корректор работает в режиме Раскраска, любая попытка изменить стиль только скорректированного объекта приводит к смене стиля самого инструмента.)Заливка и обводка из стиля инструмента заменяют собой заливку и обводку объекта. Если в стиле Корректора нет заливки или обводки, соответствующий параметр объекта просто не будет изменен. К примеру, если вам нужно поменять заливку объектов на синюю, но оставить обводку нетронутой, просто щелкните по палитре образцов, чтобы задать нужную заливку инструмента, а затем полностью удалите обводку из стиля инструмента (к примеру, щелчком средней клавишей мыши). Схожим образом, общая непрозрачность в стиле инструмента изменит общую непрозрачность объекта которого коснется кисть (если канал O включен, разумеется, см. ниже).В этом режиме вы в прямом смысле рисуете по объектам, меняя их цвет в сторону текущего стиля инструмента. Например, если вы рисуете желтым по синему, объект понемногу превратится в сине-зеленый, затем зеленый, затем желто-зеленый, и наконец станет желтым. Скорость этой метаморфозы зависит от значения параметра «Сила» и силы нажатия стилусом планшета; кроме того, объекты, которых коснулись краем кисти, будут меняться медленнее тех, что попали под центр кисти. Словом, инструмент очень похож на растушеванную кисть в редакторе растровой графики вроде GIMP или Photoshop.
  • Режим перебора цветов позволяет назначать объектам случайные значения цветов, причем сила нажатия определяет диапазон случайных значений. Стиль инструмента здесь не задействуется вовсе.Оба режима работают и с плоской заливкой, и с градиентами. Что касается градиентов, инструмент принимает во внимание не только положение объекта в целом, но и положение каждой опорной точки градиента относительно кисти. На практике это означает, что в градиенте из синего в красный цвет можно перекрасить синюю опорную точку кистью достаточно маленького диаметра, чтобы не коснуться красной опорной точки. (Обратите внимание: коррекция цвета не создает градиенты в объектах с плоской заливкой.)

Вот небольшой пример использования Корректора в режиме раскрашивания:

Каналы

При работе в режимах раскраски и перебора цветов следует учитывать каналы, которые меняются при использовании Корректора. В панели параметров инструмента для этого есть четыре кнопки: H, S, L и O, т.е. тон, насыщенность, яркость и непрозрачность соответственно. Щелчком по соответствующим кнопкам можно включать и отключать действие над этими каналами. Например, если нужно повысить насыщенность части рисунка, не меняя тон, выберите какой-нибудь очень насыщенный цвет (скажем, чистый красный) и выключите все каналы кроме S. Если же нужно заменить тона, не меняя насыщенности и яркости, оставьте нажатой только кнопку H. При нажатой кнопке O общая непрозрачность из стиля инструмента будет заменять собой общую непрозрачность (но не непрозрачность заливки или обводки) попавшего под кисть объекта.

Советы по использованию

Раскрашивание Корректором похоже, но не абсолютно аналогично раскрашиванию в растровой графике. Даже несмотря на то, что инструмент использует растушеванную кисть, он все же работает с векторными объектами, ведущими себя соответствующим образом. К примеру, если вы хотите изменить цвет лица на рисунке, то в случае, когда рука является частью того же объекта, что и лицо, эта рука будет тоже перекрашена, даже находясь относительно далеко от лица. (В будущем в программе может появиться команда «фрагментации», превращающая монолитный объект в набор более мелких объектов, которые проще корректировать.) Но даже с этим ограничением раскраска является новым способом работы с векторными рисунками, позволяющим быстро и интуитивно менять объекты, на что при традиционном подходе уходило бы куда как больше времени и сил.

Лучше всего цветовыми режимами Корректора обрабатываются рисунки, содержащие текстуры, либо скопления мелких объектов:

  • штрихи, нарисованные каллиграфическим пером;
  • градиентные сетки, импортированные из файлов Adobe Illustrator (Inkscape преобразует эти сетки в набор многоугольников);
  • тест, преобразованный в контуры с примененной командой «Разбить», так что каждая буква в своем контуре;
  • текстуры, созданный при помощи команды «Узор из клонов»; обратите внимание на необходимость снять заливку и/или обводку исходного объекта и использовать вкладку «Цвет» для назначения клонам некоторого начального цвета — это позволит раскрашивать клоны Корректором без отсоединения.

Больше того, коррекция цвета полезна для композиций с несколькими объектами или даже единственным объектом. Раскрашивание Корректором для художников является более понятным путем добиться желаемого результата, нежели ползунки RGB или цветовой круг. К примеру, можно нарисовать прямоугольник, залитый чистым синим цветом, а затем раскрашивающей кистью Корректора с минимальной силой наносить другие оттенки (немного зеленого, немного коричневого, немного желтого) до получения желаемого результата. Схожим образом можно выбелять или зачернять любой тон добавлением белого или черного цвета.

Клавиатурные комбинации

  • W, Shift+F2: переключение на инструмент
  • Shift+P: переключение на режим выталкивания (Push)
  • Shift+S: переключение на режим втяжки (Shrink)
  • Shift+G: переключение на режим наращивания (Grow)
  • Shift+A: переключение на режим притяжения (Attract)
  • Shift+E: переключение на режим отталкивания (Repel)
  • Shift+R: переключение на режим огрубления (Roughen)
  • Shift+C: переключение на режим раскраски (Color Paint)
  • Shift+J: переключение на режим перебора цветов (Color Jitter)
  • Влево, Вправо, Home, End: смена ширины
  • Вверх, Вниз: смена силы
  • перетаскивание мышью: коррекция выбранного объекта в текущем режиме
  • Ctrl+перетаскивание мышью: временное переключение на втяжку (пока Ctrl нажат)
  • Shift+Ctrl+перетаскивание мышью: временное переключение на наращивание (пока Shift+Ctrl нажат)

Инструмент рисования параллелепипедов

Inkscape предназначен для рисования в двух измерениях. Вместе с тем, зачастую приходится рисовать объекты в перспективе. Новый инструмент рисования параллелепипедов помогает выполнять такие рисунки, автоматизирую одну из наиболее популярных операций: создание параллелепипеда в заданной перспективе. Мы не собираемся конкурировать с Blender, но раз некоторые простые вещи делать сложно, почему бы взять и не решить эту проблему?

046-3dbox-about-th.png

Сейчас при помощи инструмента вы можете делать следующее:

  • рисовать параллелепипед простым перетаскиванием мыши по холсту; с Shift перетаскивание сразу выдавливает объект по оси.
  • менять размер объекта в любом измерении простым перетаскиванием ручек на холсте: 4 ручки спереди меняют размер, 4 ручки сзади расширяют/сокращают объект по оси Z. При нажатии Shift функции ручек сторон на переднем и заднем планах меняются местами. При нажатии Ctrl ручки, меняющие размер объекта, прилипают к осям координатам или диагоналям.
  • перемещать параллелепипед в перспективе, перетаскивая его за крестообразную метку центра; без клавиш-модификаторов перемещение происходит только в плоскости XY (нажмите Ctrl для ограничения передвижения по диагоналям или по осям координат), с Shift параллелепипед движется параллельно оси Z.
  • корректировать точки схода перетаскиванием по холсту и переключать их состояние; эти изменения коснутся всех параллелепипедов, разделяющих эти точки схода.

Когда выделено несколько параллелепипедов, на холсте показываются все их точки схода. Если точки схода разных перспектив совпадают, они объединяются под одной ручкой. Перетаскивание этой ручки изменит положение всех этих точек схода и вид соответствующих параллелепипедов. Если какие-то из объектов, разделяющих те же точки схода, в этот момент не выделены, они все равно будут перерисованы. Перемещение ручек с Shift разделяет ранее общие перспективы выделенных и невыделенных параллелепипедов. С другой стороны, если одну точку схода подтащить очень близко к другой, они будут автоматически объединены.

В SVG параллелепипед представлен группой (svg:g) с дополнительным атрибутом в пространстве имен Inkscape; эта группа содержит 6 четырехсторонних контура, представляющих стороны параллелепипеда. Только инструмент рисования параллелепипедов воспринимает их как целостный объект. Для других редакторов это будет лишь группа контуров. Любой из этих контуров можно выбрать щелчком с нажатой клавишей Ctrl, изменить его стиль, удалить и т.д. Разумеется, весь параллелепипед или любую его сторону можно изменять инструментами выделения и правки узлов.

Комбинации клавиш

  • X, Shift+F4: переключение на инструмент;
  • разнообразные скобки, а именно [ ], ( ), { } для вращения бесконечных параллельных линий , лежащих на осях X, Y и Z соответственно; закрывающие скобки вращают по часовой стрелке, открывающие — против часовой; при нажатой клавише Alt вращение происходит с шагов в один экранный пиксел;
  • если инструмент рисования параллелепипедов активен, Shift+X, Shift+Y и Shift+Z переключают тип соответствующих линий перспективы между параллельными и сходящимися.

Градиентная заливка

Выделение нескольких опорных точек

Теперь можно выделять больше одной опорной точки за раз. Комбинации клавиш для выделения заимствованы у инструмента правки узлов.

  • Новая опорная точка добавляется в выделенные по Shift+щелчок.
  • По Ctrl+A выделяются все опорные точки градиентов в выделенных объектах
  • Shift+перетаскивание вокруг опорных точек добавляет их в выделение

Несколько опорных точек:

  • могут быть одновременно перетащены курсором мыши или клавишами-стрелками на клавиатуре; к примеру, можно создать линейную градиентную заливку, нажать Ctrl+A для выделения всех опорных точек и клавишами-стрелками переместить весь градиент.
  • могут быть удалены нажатием клавиши Del.

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

Редактирование промежуточных опорных точек

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

  • Опорные точки можно добавлять двойным щелчком или комбинацией Ctrl+Alt+щелчок по линии градиента. Кроме того, вы можете подцепить и бросить цвет с палитры образцов на линию градиента, чтобы создать новую опорную точку с этим цветом. Меткий бросок образцом цвета в существующую опорную точку перекрасит ее.
  • Если выделены смежные опорные точки, по нажатию клавиши Ins в центр отрезка между каждой из них будет вставлено по одной новой точке.
  • Промежуточные опорные точки можно перемещать вдоль линии градиента курсором мыши или клавишами-стрелками в пределах невыделенных смежных опорных точек (или крайних точек градиента).
    • При нажатой клавише Ctrl выделенные опорные точки перемещаются прыжками по 1/10 длины линии градиента.
    • При нажатой клавише Alt выделенные опорные точки перемещаются логарифмически, а не линейно, подобно вылепливанию инструментом правки узлов. Это полезно для получения градиентов с неравномерным и плавным переходом от цвета к цвету. Допустим, у вас есть объект с простым градиентом из двух опорных точек. Выделите их, нажмите несколько раз Ins, для создания новых опорных точек, затем перетащите центральную опорную точку с нажатой клавишей Alt.
  • Опорные точки можно перемещать клавишами-стрелками со всеми обычными модификаторами (с Shift для десятикратного шага перемещения, с Alt для попиксельного смещения, с Shift+Alt для смещения на 10 пикселов в текущем масштабе отображения документа).
  • Опорные точки можно удалять комбинацией Ctrl+Alt+щелчок по точки или нажатием Del (работает для всех выделенных точек).
    • Когда вы удаляете конечную опорную точку, следующая наиболее близкая к ней становится конечной, не перемещаясь на место предыдущей.
    • Когда вы удаляете конечную опорную точку, а промежуточных опорных точек в градиенте нет, объект будет залит видимым (т.е. с учетом значения непрозрачности) цветом последней оставшейся опорной точки градиента.
  • По нажатию Ctrl+L градиент будет упрощен, т.е. опорные точки будут удалены из него так, что общий вид градиента будет сохранен. В частности, будут удалены все повторяющиеся опорные точки, созданные ранее по нажатию Ins и не измененные позднее.

Стиль опорных точек градиента

  • Стиль одной выделенной опорной точки градиента отображается в левом нижней углу окна программы и диалоге «Заливка и обводка». Если раньше значение ручки градиента отображалось в заливке и обводке раздельно, то сейчас оно отображается в общей непрозрачности («Н:» в статусной строке и «Общая непрозрачность» в диалоге «Заливка и обводка»). Если выделено несколько опорных точек, в панели стиля показывается усредненное значение цвета и непрозрачности этих опорных точек.
  • Если выделена одна или несколько опорных точек, копирование (Ctrl+C) помещает в буфер обмена стиль выбранной опорной точки или усредненный стиль нескольких опорных точек, а не весь объект с градиентом, как ранее. Это означает, что теперь по привычной комбинации Ctrl+Shift+V можно применять стиль одной опорной точки к другой опорной точке. Можно также вставить в несколько выделенных опорных точек их усредненный стиль, последовательно нажав Ctrl+C и Ctrl+Shift+V. (После этого градиент можно упростить нажатием Ctrl+L).
  • Если в заливке или обводке выделенного объекта есть градиент, в палитре стиля внизу слева этот градиент будет отображен точно так, как он выглядит на холсте, и промаркирован буквой «Р» или «Л» в зависимости от типа градиента.

Автоматическая дубликация градиентов

При копировании/вставке или дубликации объекта с градиентной заливкой теперь автоматически создается копия исходного градиента, так что дальнейшее редактирование градиента в новом объекте больше не затрагивает исходный градиент. Раньше для этого приходилось самостоятельно нажимать кнопку «Продублировать» в панели параметров инструмента градиентной заливки. Теперь эта кнопка удалена.

Тем не менее, поскольку это заметно меняет принцип работы с градиентами, и не всем новый подход удобен, такое поведение программы можно откатить до прежнего. Для этого в диалоге параметров программы на вкладке «Прочее» снимите флажок с параметра «Не разделять определения градиента между объектами».

Каллиграфическое перо: инструментарий гравера

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

Вот несколько примеров того, что можно сделать при помощи инструментария гравера в Inkscape:

Отслеживание направляющего контура с Ctrl

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

Вот как это делается. Сначала выберите направляющий контур, который необходимо отслеживать. Таким контуром может быть штрих каллиграфическим пером, любой контур или фигура и даже текст. Затем переключитесь на Каллиграфическое перо, укажите нужные параметры (толщину линии, угол, фиксацию и т.д.) и, перед началом рисования, нажмите Ctrl. Вы увидите серую следящую окружность, центрированную по курсору мыши и касающуюся ближайшей точки выбранного направляющего контура. (Если направляющего контура нет, подсказка в строке состояния напомнит вам об этом.)

046-engraving-step1.png

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

046-engraving-step2.png

Когда штрих нарисован, отпустите курсор мыши (или поднимите перо планшета), но не отпускайте клавишу Ctrl, потому что до тех пор, пока она нажата, инструмент помнит интервал штриховки, установленный перед началом рисования. Как только вы нарисовали первый штрих, он автоматически выделяется (что происходит со всеми рисующими инструментами Inkscape) и, таким образом, сам становится направляющим контуром. Дальше вы можете нарисовать второй штрих вслед за первым, третий вслед за вторым и.т.д. Так постепенно можно заполнить однообразными штрихами любое желаемое пространство.

046-engraving-step3.png

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

Связь с направляющим контуром не является абсолютной. Если вы перетащите указатель мыши достаточно далеко от направляющего контура, вы сможете «оторвать» его (отслеживающая окружность сменит цвет с зеленого на красный) и свободно перемещать. Это сделано нарочно: таким образом вы можете, к примеру, продолжать рисовать штрих, добравшись до конца направляющего контура, заштриховывая таким образом область большую, недели исходный направляющий контур. Мы позаботились о том, чтобы отрывание было максимально нежным, но безумные рывки в ряде случаев неизбежны. Здесь можно лишь посоветовать две вещи: а) не пытаться штриховать слишком быстро и б) увеличить значение массы пера, если нежелательные рывки и непредумышленные отрывания вас по-прежнему беспокоят.

Мы также постарались сделать так, чтобы перо не пыталось перепрыгивать на противоположную сторону направляющего контура. Нечаянные прыжки подавляются, но если вы добиваетесь именно перехода на другую сторону направляющего контура, просто переместите туда курсор и чуть-чуть подождите: Inkscape поймет, чего вы хотите, и даст рисовать с обратной стороны.

При рисовании вдоль направляющего контура программа будет также отслеживать, не пытаетесь ли вы увеличивать или уменьшать интервал между штрихами. Если вы все время будете пытаться это делать, интервал действительно станет немного увеличиваться или уменьшаться, но не настолько, чтобы досаждать. Кроме того, поскольку штрихи повторяют форму отслеживаемого контура, попытка штрихи с переменной толщиной (как при трассировке фона) приведет к постепенному сгибанию штриховки.

Отслеживание фона толщиной штрихов

В панели параметров Каллиграфического пера появился новый переключатель Следить за фоном. Если он в состоянии «включен», толщина штриха пером будет зависеть от светлоты фона под штрихом: при белом цвете фона толщина будет минимальной, при черном — максимальной (т.е. равной значению, указанному для массы). Эта функция может работать как сама по себе, так и в комбинации с чувствительностью к силе нажима.

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

Прочие новшества

  • Ради единообразия рисование Каллиграфическим пером с нажатой клавишей Shift автоматически объединяет новые штрихи с предыдущими выбранными штрихами (и выделяет результат). Таким образом, серией комбинаций Shift+штрих можно создать один объединенный контур вместо рисования нескольких отдельных контуров, как ранее.
  • Клавиши Home/End позволяют быстро переключаться между минимальным и максимальным значениями массы пера соответственно. Это является дополнением к уже использующимся клавишам-стрелкам влево и вправо для уменьшения значения массы на 1. Кроме того, не забывайте, что можно нажать Alt+X, ввести нужное значение и нажать Ввод.)

Инструмент выделения

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

046-touch-selection.png

Переключиться в этот режим можно даже во время обычного выделения резиновой лентой, просто нажав клавишу Alt. В этом случае прямоугольная рамка исчезнет и ее место займет красная линия от руки. Если же вы еще ничего не начинали выделять, сначала нажмите Alt и уже затем начинайте рисовать линию выделения (больше ничего не должно быть выделено, иначе Alt+перетаскивание начнет перемещать выделение). Чтобы начать выделение с объекта, над которым сейчас находится указатель, либо добавить объекты в существующее выделение, нажмите Shift+Alt и уже тогда начните рисование линии.

Раньше переключаться между режимами масштабирования и вращения объекта можно было лишь по щелчкам мышью, что достаточно неудобно при работе с объектом внутри группы. Теперь переключение можно выполнять по комбинации Shift+S в режиме Селектора.

Перетаскивание ручек масштабирование с удерживаемой нажатой клавишей Alt приводит к масштабированию с переменным коэффициентом, например, в 2, 3, 4, и т.д. раз больше или меньше исходного размера. (в каждом измерении отдельно), равно как и -1/3, -1/2, -1, -2, -3, и т.д. Таким образом вы можете, к примеру, зеркалировать любой объект вокруг краев его площадки. (Соответственно, редко использовавшийся ранее режим плавного масштабирования с нажатой клавишей Alt теперь недоступен.)

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

Инструмент правки узлов

Если над тем или иным узлом (или его рычагом) текущего контура застыл указатель мыши, горизонтальное/вертикальное зеркалирование (клавиши H и V), пошаговое вращение (клавиши [ и ]) и масштабирование (клавиши < и >) будут использовать этот узел в качестве центра вращения. Если ни над одним узлом не навис карающий курсор мыши, центром послужит центр площадки.

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

Рисование прямоугольников

Ctrl+перетаскивание позволяют создавать прямоугольники с фиксированным соотношением сторон, начиная «золотым» (~1:1.618034) и заканчивая 1:2, 1:4 и т.д.

Рисование эллипсов

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

Ctrl+Alt+перетаскивание — исключение из этого правила. С этой комбинацией создается идеальная окружность, чей диаметр определяется начальной и конечной точками перетаскивания.

Текст

Если текст содержит элемент tref, поведение инструмента Текст может быть не вполне ожидаемым. Подробнее см. раздел «Поддержка SVG».

Карандаш/Перо

При помощи этих инструментов можно рисовать отдельные точки: с нажатой клавишей Ctrl щелчок по холсту создаст круг, залитый текущим цветом обводки. Используемый по умолчанию радиус задается на соответствующей вкладке каждого из этих инструментов как множитель текущей толщины обводки. Если нажаты клавиши Shift и Ctrl, щелчок по холсту создаст точку с диаметром в два раза больше значения по умолчанию, а с клавишами Alt и Ctrl размер точки будет меняться случайным образом.

Пипетка

Клавиша D теперь используется для временного переключения на Пипетку (как и пробел служит для временного переключения на селектор). Повторное нажатие D приводит к переключению на предыдущий инструмент.

Поддержка SVG

Элемент tref

Программа научилась корректно открывать файлы с элементами tref, а новые элементы tref можно создавать вручную в редакторе XML.

Собственно текстовые данные элемента могут быть как встроены напрямую, так и содержаться в элементе, на который ссылается tref.

Несмотря на то, что форматирование текста из ссылочного элемента при включении будет убрано, сам элемент tref может иметь те же атрибуты, что и tspan. Более того, при отрисовке tref заменяется на tspan с теми же атрибутами, а текст из ссылки встраивается в этот tspan.

Для ссылки используется xlink:href. Если текст по ссылке меняется, tref автоматически обновляется.

Существующие элементы tref можно преобразовать в tspan командой «Правка → Клоны → Отсоединить клон». Если в выделении больше одного элемента tref, все они будут превращены в элементы tspan. Атрибуты tref будут перенесены в tspan как есть.

Клонированные текстовые данные в tref редактировать нельзя, так же как нельзя применять стиль к части клонированных данных. Зато стиль можно применить ко всем клонированным данным (т.е. ко всему элементу tref).

Фильтры SVG

Новые поддерживаемые фильтры

  • Примитив feBlend дает режимы наложения, известные по многим редакторам изображений: Экран, Умножение, Затемнение и Осветление. Не обошлось без подводного камушка: при наложении объекта поверх полупрозрачного фона этот фон будет посчитан дважды, из-за чего объекты под площадкой наложенного объекта будут выглядеть толще. Это ограничение текущей версии формата SVG, а не ошибка Inkscape.
  • Примитив feColorMatrix применяет матричное преобразование к цвету каждого отрисованного пиксела. Таким образом можно менять тон и насыщенность объекта, либо превращать его из цветного в черно-белый (в градациях серого).
  • Примитив feComposite сводит два изображения, используя режимы наложения Портера-Даффа (описанные в научной публикации Compositing Digital Images by T. Porter and T. Duff, опубликованной в SIGGRAPH ’84 Conference Proceedings, Association for Computing Machinery, Volume 18, Number 3, July 1984), либо арифметические режимы, описанные в стандарте SVG. Режимы наложения Портера-Даффа — это, по сути, логические операции с изображениями. К примеру, режим «Исключающее ИЛИ» (XOR) показывает все неперекрывающиеся области объектов. Арифметический режим позволяет указывать коэффициенты k1-k4 для уравнения наложения (результирующий цвет) = k1 * (первый цвет на входе) * (второй цвет на входе) + k2 * (первый цвет на входе) + k3 * (второй цвет на входе) + k4.
  • Примитив feConvolveMatrix позволяет указывать свертку, применяемую к изображению. Типичные эффекты, создаваемые при помощи матриц свертки — размывание, повышение резкости, создание рельефа и определение краев. Подробное разъяснение принципа работы матриц свертки и несколько примеров матриц можно найти на странице www.gamedev.net/reference/programming/features/imageproc/page2.asp. Обратите внимание, что гауссово размывание хоть и можно получить при помощи матрицы свертки, но лучше пользоваться все-таки специальным примитивом, который работает быстрее и не зависит от разрешения.
  • Примитивы feDiffuseLighting и feSpecularLighting создают карты освещения для объекта во входящем изображении. В SVG отсутствует концепция третьего измерения, так что эти фильтры используют альфа-канал входящего изображения в качестве карты высоты: чем непрозрачнее точка во входящем изображении, тем ближе наблюдатель. В комплекте Inkscape есть файл с примером — share/examples/lighting_effects.svg (либо в SVN).
  • Примитив feDisplacementMap смещает пикселы первого входа, используя второй вход в качестве карты смещения, показывающей, from how far the pixel should come from. Классические примеры использования этого примитива — эффекты вихря и щипка, которые есть в практически любом крупном редакторе растровых изображений и даже в некоторых хранителях экрана, где этот эффект перемещается по экрану и вьет веревки из всего, что под него попадает.
  • Примитив feFlood заливает область заданным цветом и непрозрачностью. Его можно использовать в качестве вспомогательного инструмента, как правило, в комбинации с другими примитивами, для типичных процедур изменения цвета.
  • Примитив feImage позволяет использовать в цепочке фильтра внешние изображения. К примеру, внешнее изображение можно использовать в качестве карты смещения в feDisplacementMap или в качестве карты высоты в осветительных эффектах. Обратите внимание на то, что хотя стандарт SVG и допускает использование в этом примитиве других частей документа SVG, в Inkscape пока что работают лишь внешние файлы.
  • Примитив feMerge сводит несколько временных изображений в одно целое при помощи альфа-композитинга. Использование этого примитива эквивалентно использованию нескольких примитивов feBlend в режиме «Нормальный» или нескольких примитивов feComposite в режиме «над» (‘over’).
  • Примитив feMorphology позволяет использовать эффекты эрозии и дилатации, также часто присутствующих в редакторах растровой графики. В режиме эрозии темные и более прозрачные области переходят в более светлые и непрозрачные, в то время как в режиме дилатации светлые и непрозрачные области переходят в темные и более прозрачные. В случае с одноцветными объектами это означает, что эрозия делает их тоньше, а дилатация — толще.
  • Примитив feOffset смещает изображение на указанное пользователем расстояние. Это может быть полезно для имитации отбрасываемой тени, поскольку тень занимает несколько отличное от освещаемого объекта положение.
  • Примитив feTurbulence создает перлинов шум. Этот тип шума полезен для имитации различных природных явлений вроде облаков, огня и дыма, а также для создания сложных текстур наподобие мрамора и гранита.

Более подробную информацию по реализации фильтров SVG в Inkscape можно найти в вики на странице Filter Effects.

Пользовательский интерфейс к фильтрам

Создавать и изменять фильтры SVG можно при помощи нового диалога, который открывается командой «Объект→Фильтры эффектов…».

046-filter-effects-ui.png

В списке слева перечисляются все фильтры, используемые в документе:

  • новый фильтр можно создав щелчком по кнопке «Создать» под списком фильтров;
  • через контекстное меню фильтра можно продублировать или удалить фильтр;
  • двойной щелчок по названию фильтра применяет его ко всем выделенным объектам;

В списке справа перечисляются примитивы выбранного фильтра:

  • Новый примитив добавляется выбором его из раскрывающегося списка внизу и щелчком по кнопке «Добавить:».
  • Щелчок правой клавишей мыши по примитиву открывает контекстное меню, через которое примитив можно продублировать или удалить.
  • Порядок применения эффектов можно изменить простым перетаскиванием соответствующего примитива вверх или вниз.
  • Когда выбран тот или иной фильтр, параметры текущего примитива отображаются внизу во вкладке «Параметры эффекта». Изменение параметра примитива приводит к немедленному обновлению документа.
  • Атрибуты «in» и «in2» поддерживающих их фильтров не отображаются на вкладке параметров примитива, а графически отображаются в списке примитивов в столбце «Соединения»:
    • Входы того или иного фильтра отображаются в виде треугольников. В зависимости от типа примитива входов может быть один или два (или больше, если речь идет о примитиве «Сведение»). Соединения можно создавать щелчком по треугольнику и его последующим перетаскиванием.
    • Существует шесть стандартных типов входа для любого примитива: Исходный объект, Альфа-канал исходного объекта, Фоновое изображение, Альфа-канал фонового изображения, Цвет заливки и Цвет обводки. Они отображаются вертикально в правой части столбца «Соединения». Для соединения щелкните и перетащите треугольник на один из этих входов.
    • Примитивы могут быть подсоединены к другим примитивам щелчком по треугольнику и его перетаскиванием к другому примитиву.
    • Одиночный щелчок по треугольнику удалить указанное пользователем соединение и сбросит его до используемого по умолчанию. В случаем с примитивом «Сведение» это приведет к удалению входа.
    • У примитива «Сведение» всегда есть пустой вход в конце. Перетаскивание его треугольника приведет к созданию нового пустого входа.

Динамические контурные эффекты (LPE)

Динамические контурные эффекты (не путать с расширениями эффектов и фильтрами SVG) — новый способ неразрушаемо менять контуры и фигуры. Эти эффекты изменяют сами контуры, а не их стиль. Исходный контур всегда сохраняется и может быть отредактирован прямо на холсте, а результат примененного эффекта в этом случае будет пересчитан и тут же перерисован.

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

Механизм LPE был создан Йоханом Энгеленом в рамках программы Google Summer of Code 2007.

Как они работают

Приведенная ниже схема поясняет принцип работы LPE.

   original style  ------------>  output style
   original path   -->  LPE  -->  output path
                         ^
                         |
                     parameters

К исходному контуру применяется эффект. Результат применения эффекта выводится в обычный атрибут контура, видимый любым просмотрщиком SVG. Inkscape находит исходный контур и позволяет изменять его, чтобы эффект пересчитывался. Стиль исходного объекта сохраняется.

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

Применение эффектов

Контурные эффекты применяются через диалог «Контуры→Контурные эффекты» (или Ctrl+Shift+7). В этом же диалоге меняются параметры эффектов.


Примечание: поскольку механизм LPE достаточно мощен, некоторые существующие функции программы будут переписаны с его использованием, причем доступны они будут вовсе не через указанный выше диалог. Среди таких функций, к примеру, — новый инструмент Корректор.


Когда выбран контур, к которому применен некий динамический контурный эффект, этот факт упоминается в строке состояния, к примеру: «Контур (4 узла, контурный эффект)».

Примененный контурный эффект с его параметрами можно вставить из одного объекта в другой командой «Правка→Вставить контурный эффект» (Ctrl+7).

Правка параметров эффектов

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

Параметры некоторых эффектов можно менять прямо на холсте. Для этого достаточно нажать кнопку «Правка на холсте» в диалоге «Контурные эффекты» или просто нажимать клавишу «7» для циклического перемещения между редактируемыми на холсте параметрами. Строка состояния будет подсказывать названия показываемых в настоящий момент параметров.

046-lpe-on-canvas-edit.png

Доступные эффекты

Изгиб по контуру

Эффект «Изгиб по контуру» гнет один контур вдоль другого. Исходный контур и контур изгиба можно менять на холсте при помощи инструмента правки узлов. При этом результат действия эффекта будет немедленно отображаться на холсте. Фактически, это упрощенная реализация «векторных кистей» (они же «скелетные кисти»), известных по другим редакторам.

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

Текстура по контуру

Это более сложный вариант предыдущего эффекта. В параметрах можно указать, сколько копий размещать по контуру изгиба (одну, либо повторять до упора) и растягивать ли сгибаемый контур до заполнения контура изгиба.

046-skeletal-1.png

Сшивка субконтуров

Этот эффект соединяет точки двух субконтуров контура прямыми или кривыми линиями, т.е. стежками. Внешне это очень похоже на функцию Effect Lines из Expression 3. Результат часто называется нитяной графикой или изонитью (string art), примеры которой можно увидеть на странице http://members.shaw.ca/jillbritton/string_art/jbstringart.htm.

Очертания соединяющих контуров контролируются параметром «Обводящий контур». При помощи параметра можно рисовать волосы с острыми кончиками. Среди прочих регуляторов — количество контуров, вариативность интервалов между стежками, а также схожесть начальных и конечных точек стежков с соответствующими точками оригинальных субконтуров. Наконец, вы можете менять толщину стежков.

Обратите внимание на то, что эффект можно применять лишь к контуру с двумя субконтурами (отсюда и название эффекта). Для создания такого контура можно выбрать два простых контура и применить к ним команду «Контур → Объединить».

Шестеренки

Эффект «Шестеренки» создает цепь связанных шестеренок из контура, к которому он применяется. Узлы контура определяют центры шестеренок. Первые три узла — особые; первый узел определяет начальный угол цепочки, второй — определяет центр первой шестеренки, а третий — определяет ее радиус. Таким образом, для создания двух соединяющихся шестеренок нужно четыре узла, для трех — пять, и так далее.

Разработка новых эффектов

Одной из целей проекта Summer of Code, в рамках которого разработан механизм LPE, была простота создания новых эффектов. Созданная инфраструктура делает создание нового динамического контурного эффекта очень простым; для добавления нового эффекта в Inkscape нужно очень мало кода. Это позволяет уделять разработке собственно эффекта гораздо больше времени. Справку по созданию новых эффектов можно найти в вики. О дальнейших планах на разработку LPE можно прочитать в интервью с разработчиками Inkscape, опубликованном на нашем сайте.

Расширения эффектов

Предпросмотр

Результат действия расширений эффектов теперь можно видеть прямо на холсте. Это стало возможным благодаря переносу расчетов в отдельный процесс (для чего используется Spawn Glib API). Как только вы открываете диалог с параметрами эффекта, сценарий тихо выполняется в фоновом режиме, а когда вы меняете те или иные параметры, он так же тихо запускается заново. Поэтому для подбора правильных параметров можно просто менять их в в диалоге, не щелкая по кнопке ОК. Разумеется, в некоторых случаях (например, когда эффект применяется к контуру с большим количеством узлов) предпросмотр результата неминуемо приведет к замедлению прорисовки.

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

Новые и улучшенные эффекты

  • Новый эффект «Изменение контура → Объемные края» создает черный, серый и белый контуры вокруг выбранного объекта, затем размывает и маскирует их для имитации объемного края.

    046-effects-edge3d.png

  • Новый эффект «Создание из контура → Размеры…» создает размерные рамки в стиле САПР. К стрелкам можно затем применить эффект «Визуализация контура → Измерить контур…», чтобы проставить длину и высоту в нужном масштабе.

    046-effects-dimensions-measure.png

  • Новый эффект «Отрисовка → Штрих-код» создает штрих-код по стандартам EAN13, EAN8, UPC-A, UPC-E, UPC-5, Code39, Code39Ext, Code93, Code128 и RM4SCC. Созданный объект штрих-кода — группа «#barcode», состоящая из прямоугольников и текста. Теперь готовить в Inkscape оформление различных упаковок стало гораздо проще.

    046-effects-barcode.png

  • Новый эффект «Отрисовка → Зубчатое колесо…» создает шестеренку с заданным числом зубцов, окружным шагом и углом зубчатого сцепления.
  • Новый эффект «Отрисовка → Спирограф» создает замысловатые математические кривые, похожие на классическую игрушку «Спирограф».

    046-effects-spyrograph.png

  • Группа новых эффектов в субменю «Текст» выполняет различные преобразования с регистром текста: преобразует его в ВЕРХНИЙ РЕГИСТР, нижний регистр, Регистр предложения, Регистр Заголовков, иНВЕРТИРУЕТ РЕГИСТР, а также дЕлАЕт РЕгИсТр СлУЧаЙнЫм. Если ни один текстовый объект не выбран, эффект обрабатывает весь документ.

    046-effects-text-case.png

  • Еще один эффект в этом же субменю выполняет регистрозависимый поиск и замену в выделенном текстовой объекте (либо во всем документе, если ни один текстовый объект не выбран). При помощи эффекта, можно, к примеру, убрать все вхождения некоторого текста, оставив строку замены пустой, либо увеличить количество пробелов между словами, заменив пустоту на пробел.
  • Новый эффект «Цвет → Заменить цвет» просто заменяет один цвет в формате RRGGBB на другой в выделении или всем документе (если выделения нет). Как и в случае с другими эффектами, изменения затронут лишь векторные объекты и скажутся их на заливке, обводке и градиентах, но не на растровых объектах.
  • Новый эффект «Цвет → Случайные значения…» позволяет случайным образом изменить тон, насыщенность и яркость выделенных объектов. Это полезно для одновременной раскраски большого числа векторных объектов.
  • Эффект «Завихрение» теперь использует центр видимой части документа в качестве центра вихря, так что положение центра больше не нужно вводить руками.
  • Диапазон интервалов между линиями сетки в эффекте «Отрисовка → Сетка…» расширился и теперь равен 0.1-1000 пикселов.
  • Эффект «Отрисовка → Построитель графиков…» теперь может использовать полярные координаты.
  • Новый эффект «Создание шаблонов → Идеально сшитая обложка…» помогает создавать обложки книг в американском формате Letter с направляющими, показывающими границы корешка, выпуск под обрез и т.д., определяя их положение исходя из числа страниц, удельного веса бумаги и т.д. Использовать этот эффект нужно перед началом работы над дизайном.

Эффекты на XSLT

Для создания эффектов импорта, экспорта и обработки теперь можно использовать язык XSLT. Эта новая функция уже задействована для поддержки формата XAML (импорт и экспорт), а также для чистки импортируемых документов SVG, созданных в Adobe Illustrator.

Эффекты на основе ImageMagick

Если раньше растровые изображения всегда приходилось обрабатывать в GIMP или ином редакторе такого рода, то сейчас простую обработку растра можно выполнять и прямо в Inkscape. Это стало возможным благодаря Кристоферу Брауну, студенту Google Summer of Code 2007, и библиотеке ImageMagick. Эффекты вы можете найти в субменю «Эффекты → Растровые».

  • Адаптивная постеризация — в качестве порога используется усредненный цвет из прямоугольника, очерченного границами «Ширина» и «Высота». Полученное значение можно изменить, задав величину смещения соответствующим параметром.
  • Добавить шум — добавить в изображение шум того или иного типа.
  • Размывание — размывает растровое изображение с указанным радиусом. Чем больше радиус, тем сильнее размывание. Заметьте: в отличие от аналогичного фильтра SVG растровый эффект ограничивается краями изображения и не выходит за них, так что края растрового изображения после обработки могут казаться обрезанными.
  • Канал — извлекает указанный канал из изображения.
  • Рисунок углем — делает изображение похожим на рисунок углем. «Радиус» определяет толщину штрихов воображаемым куском угля, поэтому повышение этого значения приводит к потере детализации. Значение параметра «Сигма» обратно пропорционально качеству эффекта.
  • Тонирование — перекрывает изображение указанным цветом at a given intensity.
  • Контраст усиливает разницу между светлыми и темными частями изображения.
  • Вращение цветовой карты циклически вращает цветовую карту изображения.
  • Убрать пятна убирает пятнистый шум.
  • Выделение краев высвечивает края.
  • Рельеф создает эффект рельефности, приподнимая края объектов в изображении.
  • Повысить качество улучшает вид изображения, удаляя шум.
  • Выровнять цветовые компоненты — название говорит само за себя.
  • Гауссово размывание — размывает изображение.
  • Взрыв внутрь втягивает все части изображения в его центр.
  • Уровни… изменяет диапазон интенсивности между заданными черной и белой точками.
  • Уровень (с каналом) — то же что и обычные уровни, но работает с одним каналом.
  • Медианный фильтр фильтрует изображение, заменяя цвет каждого пиксела усредненным значением окружающих его пикселов
  • Модуляция меняет процентное содержание тона, насыщенности и яркости.
  • Негатив инвертирует цвета.
  • Выровнять освещенность растягивает цветовой диапазон изображения до максимума.
  • Масляная краска выполняет стилизацию под рисунок маслом.
  • Непрозрачность меняет канал непрозрачности изображения.
  • Приподнятие меняет яркость границ изображения, создавая эффект приподнятости, напоминающей рамку.
  • Снижение шума убирает шум.
  • Тень оттеняет изображения, имитируя его освещение удаленным источником света.
  • Повысить резкость повышает резкость и четкость изображения.
  • Солнечный свет применяет эффект пересвеченной фотопленки.
  • Случайное распределение пикселов — название говорит само за себя.
  • Вихрь закручивает изображение вокруг его центра.
  • Порог выполняет постеризацию изображения.
  • Нерезкая маска повышает резкость изображения известным алгоритмом «Нерезкая маска».
  • Волна искажает изображение по синусоиде.

Разное

  • Все эффекты, написанные на Python, теперь используют библиотеку lxml вместо старой и неподдерживаемой PyXML.
  • Новый параметр precision добавлен в определения параметра в формате файлов INX. С его помощью можно задать допустимое количество цифр в дробной части значений.

Управление цветом

Профилированный цвет в SVG, включая CMYK

Теперь Inkscape поддерживает цветоуправляемые определения цветов, использующие цветовые пространства, отличные от sRGB (например, Adobe RGB или калиброванные цвета CMYK). На уровне файла SVG это делается при помощи опциональных компонентов “icc-color(…)” согласно разделу 11.2 «Specifying paint» спецификации SVG 1.1. В технологической цепочке без управления цветом выполняет откат (fallback) на значения sRGB. Все это позволяет использовать калиброванные цветовые пространства, включая использование значений CMYK, сохраняемых между приложениями.

Новая вкладка “CMS” позволяет изменять такие цвета.

Коррекция вывода на монитор

В диалоге настройки Inkscape появилась вкладка «Управление цветом» с параметрами, позволяющими корректировать цвет выводимых на монитор изображений; вы можете указать нужный профиль откалиброванного и профилированного монитора (файл .icc). Здесь же можно выбрать один из типов цветопередачи.

Коррекция на каждое окно

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

Поддержка XICC, многомониторные конфигурации

В операционных системах, использующих видеоподсистему X11 (т.е. Unix и Mac OSX) можно использовать поддержку спецификации «ICC Profiles In X» (иначе — XICC). Реализована поддержка версии 0.2 этой спецификации. Это удобно, поскольку профиль будет автоматически получаться от видеоподсистемы. причем в многомониторной конфигурации свой профиль будет получаться от каждого монитора, для которого он загружен. А если профиль не загружен, управление цветом будет автоматически отключено. Таким образом, стоит вам лишь перенести окно программы на другой монитор, как картинка автоматически будет скорректирована программой.

XICC поддерживается и в других приложениях, например, в GIMP. Благодаря этому одинаковый вид графики можно получать всего лишь путем указания видеоподсистеме правильного профиля или профилей.

Цветопроба

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

Библиотека текстур

Уже несколько лет в Inkscape поддерживается текстурная заливка. Вместе с тем, до сих пор единственным способом создать ее была не слишком удобная команда «Объект(ы) в текстуру». В новой версии программы пользователю доступен целый набор текстур, выбираемых из раскрывающегося списка в диалоге «Заливка и обводка»:

  • набор полосатых текстур с разным соотношением между толщиной линии и интервалом между линиями (например, в текстуре “Stripes 1:2” интервал в два раза больше толщины линий), от 4:1 до 1:64; все текстуры в двух версиях— с черными и белыми полосками.
  • две шахматные текстуры
  • тесно упакованные круги;
  • горошек, рассыпанный случайным образом; текстура представлена в шести вариантах: три размера горошка и два цвета (черный и белый).
  • волны
  • камуфляж
  • геральдика (ermine)
  • три растровые текстуры в градациях серого: песок, ткань и старая краска (нужный цвет легко добавить самому).

Залив объект текстурой, можно переключиться на инструмент правки узлов и скорректировать положение текстуры в объекте, отмасштабировать или повернуть ее.

Все текстуры хранятся в файле patterns/patterns.svg (в Linux это /usr/share/inkscape). Вы можете добавить туда свои текстуры или заменить на свои. На будущее запланирован более удобный интерфейс управления плоскими цветами, градиентами и текстурами.

Маркеры

В меню «Объект» добавлена новая команда «Объекты в маркер», которая преобразует активное выделение в маркер. После преобразования выделение удаляется, но в списке маркеров (диалог «Заливка и обводка», вкладка «Стиль обводки») появляется новый маркер для контуров.

  • При создании нового маркера Inkscape предполагает, что исходные объекты расположены так, как если бы были предназначены для горизонтального контура направленного слева направо. Соответственно, если вы добавляете новую стрелку, сделайте ее горизонтальной и указывающей вправо.
  • Как и маркеры из готового набора, созданные пользователем маркеры масштабируются вверх и вниз согласно изменениям толщины обводки контура. Исходный размер (т.е. размер объекта, который превращен в маркер) сопоставляется обводке толщиной 1 px.
  • Когда вы создаете маркер, Inkscape использует центр вращения первого выделенного объекта в качестве якорной точки, т.е. точки, которая будет совмещаться с узлом контура. По умолчанию центр вращения является центром площадки объекта, а это означает, что маркер будет крепиться к узлу контура своим центром. Если сместить центр вращения в один из углов объекта, то маркер будет крепиться к узлу этим углом.

Благодаря этой функции можно создавать достаточно занятные абстрактные рисунки вроде таких:

Соответствующий урок опубликован на нашем сайте.

  • В стандартный набор добавлено несколько маркеров UML, включая заполненные и пустые кристаллы и треугольники.
  • Ранее глобальная непрозрачность не касалась маркеров, теперь это исправлено.
  • Уже используемые в документе стандартные маркеры появляются в верхней части раскрывающихся списков на вкладке «Стиль обводки». Раньше их повторный выбор был менее удобен.

Сетки, направляющие, прилипание

Сетки

Изменения, касающиеся сеток, можно условно поделить на два типа: интересные пользователю и интересные разработчику. К первым относятся:

  • Новый тип сеток: 3D/аксонометрические. Аксонометрическая сетка состоит из трех наборов параллельных линий: один — с вертикальными линиями и две — с углами +30 и -30 градусами от воображаемой горизонтальной линии. Углы для двух последних, равно как и интервал можно задать в параметрах сетки.
  • Новая вкладка «Сетки» в диалоге «Свойства документа», где можно создавать сетки и менять их параметры.
  • Может быть активно (и видимо) несколько сеток одновременно.
  • Для каждой сетки документа можно переключать параметры видимости и прилипания. Обратите внимание, что если сетка включена, но невидима (именно так, а не наоборот), прилипание будет производиться к невидимой сетке.
  • Если один и тот же документ открыт в нескольких окнах, сетки в нем будут одни и те же, но их видимость будет разделена между окнами. Например, можно создать новое окно с тем же документом, уменьшить масштаб просмотра и отключить отображение сетки. При этом в первом окне сетка с документом по-прежнему будет видна.
  • Прямоугольная сетка теперь может отображаться не сплошными линиями, а точками на пересечениях этих (воображаемых) сплошных линий.

Разработчикам может быть интересно следующее:

  • Реализация новых типов сеток стала проще и требует теперь лишь создания подкласса CanvasGrid. Для примера можно посмотреть на прямоугольную сетку (CanvasXYGrid).
  • Информация о сетке хранится в документах SVG как потомок sodipodi:namedview. Старые файлы при открытии и сохранении преобразовываются автоматически.
  • Исправлена старая ошибка: нулевая точка координатной системы больше не зависит от нулевой точки сетки.

Наклонные направляющие

Теперь в Inkscape можно создавать наклонные направляющие. Угол меняется в диалоге параметров направляющей (двойной щелчок по направляющей).

Новая направляющая, создаваемая перетаскиванием с края линейки, будет автоматически создана наклонной. Угол наклона при этом зависит от типа активной сетки:

  • Если сетка прямоугольная, угол будет равен 45 градусам.
  • Если сетка аксонометрическая, угол будет совпадать с линиями сетки. Если при перетаскивании нажата клавиша Ctrl, угол будет перпендикулярен линиям сетки (что полезно для выстраивания градиентов)).

Создание направляющих из объектов

Выбранные объекты могут быть превращены в направляющие, для чего используется команда «Объект → Объект в направляющие» или сочетание клавиш Shift+G при выбранном инструменте Селектор (и некоторых других, см. далее). Преобразование обрабатывает все объекты групп.

Созданные направляющие можно быстро удалить сочетанием Ctrl+щелчок по ним (разумеется, это касается не только направляющих, созданных из объектов). Это работает только с Селектором и с инструментом правки узлов, т.е. в контексте, где редактирование направляющих возможно.

Есть некоторые тонкости при преобразовании объектов разных типов, на которые следует обратить особое внимание.

При преобразовании контуров создается по одной направляющей на каждый прямой сегмент (искривленные сегменты отбрасываются). Сочетание Shift+G также работает с инструментами Перо и Карандаш. К примеру, у вас есть два объекта, и вам нужно создать новую направляющую, которая касалась бы их и по которой можно было бы располагать новые объекты. Последовательность действий будет такой:

  1. Переключитесь на инструмент Перо.
  2. Щелкните над «касательной» точкой одного объекта.
  3. Перетащите курсор инструмента к касательной точке второго объекта и щелкните дважды — будет создан новый контур, наподобие направляющей.
  4. Нажмите Shift+G — будет создана направляющая, касающаяся краев двух объектов.
  5. Теперь можно нажать S для переключения на Селектор и Del для удаления созданного контура.

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

Объекты прочих типов преобразовываются по площадке (BB), геометрической или видимой — в зависимости от указанных пользователем параметров («Файл → Настроить Inkscape → Инструменты»).

046-guides-from-object.png

Вместе с теми, по умолчанию прямоугольники и параллелепипеды преобразовываются в направляющие по краям, а не по площадке. Таким образом, воспроизводится их реальная форма, что полезно, когда прямоугольник, например, скошен или повернут, либо когда нужны направляющие перспективы для рисования объектов, отличных от параллелепипедов. Это поведение отключается через диалог настройки параметров программы. Сочетание Shift+G работает и для этих инструментов.

Прилипание

По сравнению с предыдущей версией программы обильно смазаны медом:

  • создаваемые объекты;
  • скашиваемые объектов;
  • ручки объектов и опорные точки градиентов;
  • растровые изображения, эллипсы и клоны;
  • текстовые блоки (снова прилипают к основной линии);
  • центр вращения объектов;
  • направляющие, при перетаскивании;
  • аксонометрические сетки;
  • наклонные направляющие;
  • углы площадок.

Коготок увяз — всей птичке пропасть. Патоки разработчики Inkscape тоже не пожалели:

  • Неловкий объект может ненароком прилипнуть к пересечениям линий сетки с направляющими и пересечениям сегментов линий.
  • Параметры прилипания в свойствах документа разнесены по двум вкладкам: «Прилипание» и «Точки». Организация самих параметров стала логичнее.
  • В программе появился глобальный переключатель прилипания, доступный по команде «Вид → Прилипание» или клавише %.
  • Прилипание может быть включено и отключено для каждой сетки отдельно (см. диалог свойств документа).
  • Радиус прилипания теперь указывается в экранных точках и потому не зависит от масштаба.
  • Прилипание объектов стало работать чище: прилипают только углы площадки к другой площадке и узлы к другим узлам или контурам.
  • Существенно уменьшено время, требующееся для прилипания к объектам инструментом Селектор.
  • Узлы больше не прыгают при попытке прилепить их к другим узлам.
  • Соотношение сторон не теряется при масштабировании объектов с включенным прилипанием.
  • Прилипают только острые узлы контуров.

Импорт/Экспорт

Импорт PDF и AI

В новой версии Inkscape может собственными средствами импортировать файлы PDF и основанные на PDF файлы Adobe Illustrator (т.е. начиная с AI 9.0).

Поддерживаются следующие типы данных: контуры, текст, обтравочные контуры, маскированные и немаскированные растровые изображения, мягкие маски. Кроме того, поддерживается текстурная заливка (атрибуты XStep и YStep игнорируются), равно как и линейные/радиальные градиенты. Градиентные сетки импортируются как группа залитых плоским цветом многоугольных контуров, с указываемой пользователем точностью передающих вид сетки.

В диалоге, появляющемся после выбора документа PDF или AI, предлагается указать следующие параметры импорта:

  • какую страницу импортировать (если файл PDF многостраничный);
  • какую область документа импортировать (выбора из art/media/trim/crop box и т.д., либо вообще не учитывать их);
  • точность аппроксимации градиентных сеток; обратите внимание на то, что слишком высокая точность может привести к существенному росту размера документа SVG и замедлению скорости работы программы;
  • встраивать импортированные растровые изображения прямо в документ SVG или же сохранять их в один каталог с ним как отдельные файлы (в формате PNG);
  • эскиз выбранной страницы документа (для этой функции нужна библиотека poppler-cairo, либо страница должна содержать эскиз, встроенный в документ PDF).

Совет по редактированию: символ в любом тексте, импортированном из PDF или AI, находится точно в том месте, где он находится в оригинале, и зафиксирован там. Хотя таким образом сохраняется точный вид документа (к примеру, выключка текстовых блоков), редактирование документа становится сложным: удаление текста приводит к сжатию текстовой строки, а добавка текста не дает расширить ее обратно, т.е. введенные символы перекрывают существующие. (Тем не менее, вы можете заменить один символ на другой такой же ширины, хотя вам придется откернить его вручную по Alt+стрелки.)

Чтобы обойти это, выделите текстовый объект и используйте команду «Текст → Убрать ручной кернинг». Таким образом информация о точном положении символов будет удалена, так что если в текстовом блоке была полная выключка, она будет потеряна, но зато текст можно будет редактировать как обычно.

Обратите внимание, что можно выделить и одну-единственную строку в текстовом блоке. Откройте встроенный редактор XML (Ctrl+Shift+X), раскройте ветку <svg:text> с этим текстом и выделите один из объектов <svg:tspan> в ней. Теперь вы можете удалить ручной кернинг только для этой линии. Закончив с редактированием, выключку можно вернуть добавив пробелы, кернинг (Alt+стрелки), либо изменив межсимвольное расстояние по всей строке (выделить строку и нажать Alt+> или Alt+<).

Экспорт PS/PDF

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

Cairo использует и новый экспортировщик в PostScript. Бэкенд PS в Cairo не настолько развит, как PDF, и использует растеризацию чаще, чем того хотелось бы. В частности, текст не сохраняется как текст, что для бэкенда PDF не является проблемой.

Импорт CDR (Corel DRAW)

Если в системе установлен UniConvertor, Inkscape может использовать его для импорта документов в формате CDR (Corel DRAW). На момент выхода Inkscape 0.46 доступна версия UniConvertor 1.1.2, поддерживающая версии CDR от 7 до X4 и пока что не поддерживающая импорт текстовых объектов.

Импорт/эскпорт XAML

Inkscape может импортировать векторную часть документов XAML, а так же экспортировать собственные документы в XAML.

Чистый импорт Adobe Illustrator SVG

При помощи этого нового фильтра импорта Inkscape может открывать файлы SVG, убирая из них элементы и атрибуты в пространстве имен Adobe Illustrator. Таким образом импортируются только нужные данные SVG.

Импорт WMF

Начиная с этой версии Inkscape использует UniConvertor для открытия файлов WMF, что выражается в трех наиболее заметных изменениях:

  1. импортируемые файлы теперь редактируемые;
  2. известные ошибки импорта исправлены;
  3. импорт WMF работает на всех поддерживаемых UniConvertor платформах.

На момент выхода Inkscape 0.46 в текущей версии UniConvertor (1.1.2) текстовые объекты не поддерживаются.

Экспорт в растр

  • Пакетный экспорт: в диалоге экспорта в растр (Ctrl+Shift+E) появился новый параметр — «Пакетный экспорт всех выделенных объектов». Параметр доступен при выделении двух и более объектов. Если параметр используется, вместо экспорта объектов как одного Inkscape экспортирует каждый объект отдельно в свой собственный файл PNG. Если тот или иной объект ранее экспортировался в этой сессии работы с программой, при пакетном экспорте будут использованы предыдущие параметры экспорта для него (имя файла и значение dpi). В противном случае имя файла будет унаследовано от ID объекта, а dpi будет равно 90 пикселам на дюйм. Внимание: при пакетном экспорте не запрашивается подтверждение на перезапись существующих файлов.Это позволяет делать нарезку изображений и реализовывать различные автоматизированные сценарии экспорта. К примеру, если вы работаете над макетом веб-сайта, можно создать отдельный слой для экспорта. В этом слое макет можно «нарезать» невидимыми прямоугольниками (т.е. прозрачные, без заливки и обводки). Затем нужно будет выделить все такие прямоугольники (по Tab/Shift+Tab, либо переключившись в каркасный режим, в котором они будут видны и выделяемы щелчком по обводке) и экспортировать их в файлы с соответствующими именами (сохраняемыми как подсказки экспорта). После этого, стоит вам внести какие-то изменения, повторный экспорт не составит труда: просто снова перейдите на слой «Экспорт», выделите все объекты этого слоя по Ctrl+A экспортируйте их с включенным параметром «Пакетный экспорт всех выделенных объектов».
  • Скрыть все объекты кроме выделенных: новый параметр позволяет скрыть в экспортируемом изображении все объекты кроме выделенных в настоящий момент.
  • Диалог экспорта автоматически добавляет расширение .png всем именам файлов, которые вы указываете.

Импорт из Open Clip Art Library

Одна из новых экспериментальных функций — импорт рисунков из Open Clip Art Library (OCAL). Это первый шаг Inkscape в сторону поддержки образующих сообщества веб-сервисов :)

Inkscape предоставляет диалог поиска по меткам (соответственно, ожидается, что вы используете слова английского языка). Результатом запроса является RSS-поток с эскизами в PNG, по которым и импортируется рисунок. В настоящее время импорт работает не вполне корректно из-за ошибки на стороне Open Clip Art. Следует отметить, что OCAL использует CMS за авторством Creative Commons Foundation под названием ccHost, поэтому вы вместо OCAL вы можете создать собственный аналогичный интранет-сервер и использовать его, просто изменив имя узла и порт в диалоге параметров Inkscape.

Функция экспорта также реализована, но временно отключена ввиду нестабильности.

Пользовательский интерфейс

Прикрепление диалогов

В программе изменен принцип работы с диалогами, которые теперь можно «пришвартовывать» справа от холста. Эти диалоги в «порту» можно легко менять местами и временно сворачивать. Плавающий диалог можно просто перетащить в области швартовки, чтобы пришвартовать его. Из таких диалогов можно создавать вертикальные и горизонтальные группы простым перетаскиванием вниз или вбок. Прежнее поведение диалогов в программе сохранено и переключается в диалоге настройки программы на вкладке «Окна».

Известные недочеты

  • Следующие диалоги в Inkscape пока что не могут швартоваться: «Текст и шрифт», «Узор из клонов», «Редактор XML» и «Свойства объекта».
  • Закрытые плавающие диалоги при повторном открытии могут оказаться не там, где были раньше.
  • Смена размера пришвартованных диалогов может быть достаточно неудобной.
  • Общая высота области швартовки в большинстве случаев останется неизменной, если один из диалогов свернуть или закрыть, что может быть не вполне желаемым эффектом.
  • Ширина диалогов пока не оптимизировалась, так что они могут занимать много места по горизонтали.

Параметры

Три параметра группы «dock» в файле preferences.xml контролируют поведение швартуемых диалогов:

  • cancenterdock: могут ли диалоги находиться друг над другом; возможные значения — «0» и «1».
  • dockbarstyle: что показывается в заголовках пришвартованных диалогов; «0» = только значки, «1» = только текст, «2» = значки и текст.
  • switcherstyle: что показывается в заголовках групп пришвартованных диалогов; «0» = только значки, «1» = только текст, «2» = значки и текст.

Панель образцов цветов

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

Перетаскивание образцов на холст исправлено и улучшено:

  • Бросаемый на холст образец применяется к любому объекту вне зависимости от того, выделен тот или нет. Это означает, что для смены одного объекта в выделении этот объект больше не нужно выделять отдельно. Разумеется, чтобы залить образцом всю группу, достаточно просто щелкнуть левой клавишей мыши по образцу.
  • Если у объекта есть обводка и вы бросаете на нее образец цвета, изменена будет только обводка. Альтернативный способ — использовать комбинацию Shift+перетаскивание.
  • Когда ручки опорных точек градиента видны (т.е. в режиме инструмента градиентной заливки или правки узлов), вы может бросить образец на линию градиента, чтобы создать новую опорную точку, либо бросить образец на существующую опорную точку, чтобы изменить ее цвет.
  • В меню панели появилось новое субменю, где можно выбрать форум и толщину образцов цвета. В частности, это позволяет отобразить на экране всю палитру образцов сразу.

Коррекция цвета жестами мышью

В новой версии Inkscape появился новый быстрый способ точно корректировать цвета объектов — жесты мышью. Вы просто выделяете нужные объекты и перетаскиваете нижний индикатор заливки или обводки (смотря что нужно перекрасить) в нужном направлении, как это описано ниже. Обратите внимание, что это работает только с плоской заливкой и не работает, когда индикатор показывает «Нет», «Н/Д» либо градиент (хотя с опорными точками градиента этот трюк замечательно работает).

Цветовые жесты работают в цветовом пространстве HSL. Перетаскивание без модификаторов меняет канал тона, перетаскивание с Shift меняет насыщенность, а перетаскивание с Ctrlсветлоту.

Изменения в том или ином канале вносятся относительно воображаемой диагональной линии, идущей под углом 45° от точки, с которой начались изменения, через все окно Inkscape. Перетаскивая курсор мыши вниз или вправо от этой линии, вы уменьшаете значение активного канала, а перетаскивая курсор вверх или влево, увеличиваете это значение. Если курсор переносится в точку над 45-градусной линией, изменения обнуляются.

Точность изменений корректируется очень легко. Чем ближе курсор при перетаскивании к индикатору цвета, тем существеннее вносимые изменения. Соответственно, чем дальше курсор, тем меньше шаг при изменении цвета: скажем, в центре окна (а тем более — в его правом верхнем углу) шаг уже достаточно мал. По сути, новый способ даже точнее цветового круга, который для получения аналогичной функциональности пришлось бы растянуть на весь экран, что само по себе — сомнительная затея.

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

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

046-color-gestures-status-bar.png

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

У модификатора Alt особая миссия: он предотвращает любые изменения в любых каналах при перемещении курсора мыши. Таким образом, с нажатой клавишей Alt вы можете ничего не меняя переместиться в ту часть экрана, где шаг смены значения канала соответствует задумке, и продолжить корректировать цвет. Как в случае с остальными модификаторами, отпускание Alt временно переносит нулевую ось до точки, где клавиша Alt была отжата. Допустим, вы затемнили цвет Ctrl+перетаскиванием курсора к нижнему краю окна и теперь хотите прибрать насыщенность. Вы уже не можете воспользоваться комбинацией Shift+перетаскивание, потому что дальше вниз курсор тащить некуда. Поэтому нужно просто переключиться на Alt и перетащить курсор повыше, и уже тогда переключиться на Shift. Само собой, вы можете сначала использовать комбинацию Alt+перетаскивание для перемещения курсора в нужную точку, и уже потом начинать коррекцию.

Небольшое упражнение для тренировки. Выделите зеленый прямоугольник и сделайте его лазурным, утащив курсор подальше от индикатора заливки и слегка сместив вверх от 45-градусной линии. Теперь, не отпуская левую клавишу мыши, нажмите Ctrl и потащите курсор немного вправо, чтобы затемнить цвет. Затем нажмите Shift, отпустите Ctrl и скорректируйте насыщенность. Вы можете переключаться между Ctrl и Shift сколько угодно раз. Добившись нужного результата, отпустите левую клавишу мыши для применения внесенных изменений.

Помимо точной коррекции цветовыми жестами можно выполнять некоторые часто используемые операции с цветом:

  • Ctrl+перетаскивание вправо до упора раскрашивает все выделенные объекты в черный цвет.
  • Ctrl+перетаскивание влево до упора раскрашивает все выделенные объекты в белый цвет.
  • Shift+перетаскивание вправо и вниз убирает насыщенность из всех выделенных объектов.
  • Shift+перетаскивание влево и вверх задирает насыщенность всех выделенных объектов до максимума.

Стоит помнить о следующем: при выделении объектов или опорных точек градиентов разного цвета индикатор внизу показывает их усредненный цвет. Поэтому стоит лишь потащить такой индикатор, как усредненный цвет будет автоматически назначен заливке или обводке всех выделенных объектов, стерев таким образом разницу между ними. Для независимой коррекции цвета каждого объекта в выделении стоит использовать Корректор в одном из его цветовых режимов, либо расширения эффектов («Эффекты→Цвет»).

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

Панели инструментов

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

Большинство контекстных панелей переписано так, что окно программы можно сделать уже, а не поместившиеся элементы панели переносятся в раскрывающийся список:

046-cropped-toolbars.png

Печать

Теперь Inkscape использует стандартный диалог печати GTK+, а также позволяет выбирать способ печати: через Cairo (новый способ) или посредством предварительной растеризации всего документа (старый и более медленный способ).

Перемещение по документу и масштабирование

  • Вы можете перемещаться по документу комбинацией пробел+перетаскивание мышикак в Adobe Illustrator. Это поведение переключается на вкладке «Прокрутка» в диалоге настройки программы.
  • По умолчанию прокрутка колеса мыши выполняет перемещение по документу, а Ctrl+прокрутка — масштабирование. Теперь вы можете поменять их местами, указав нужное поведение на всё той же вкладке. Это может быть интересно пользователям AutoCAD и Corel DRAW.
  • Если активирован инструмент Лупа, щелчок по правой клавише мыши всегда будет уменьшать отображение документа, а не открывать контекстное меню.

Схемы горячих клавиш

Добавлены схемы для следующих программ:

  • Corel DRAW X4 (corel-draw-x4.xml)
  • Zoner Draw 5 (zoner-draw.xml)
  • ACD Systems Canvas 11 (acd-canvas.xml)

Файл схемы Adobe Illustrator улучшен и теперь учитывает горячие клавиши для инструментов.

Напоминаем, что для использования одного из доступных профилей необходимо скопировать его как файл default.xml в тот же каталог, перезаписав существующий файл. Для восстановления исходных горячих клавиш проделайте то же самое с файлом inkscape.xml.

Темы значков

Если вы привыкли к интерфейсу GIMP 2.4/2.5 и Scribus 1.3.4/1.3.5, вероятно, вам захочется использовать ту же тему значков. Для этого замените файл ~/.inkscape/icons/icons.svg файлом /usr/share/inkscape/icons/tango_icons.svg. Чтобы вернуть прежнюю тему, замените ~/.inkscape/icons/icons.svg файлом /usr/share/inkscape/icons/inkscape.svg или просто удалите его.

Работа с командной строкой

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

  • –verb-list выводит список всех Verb ID (т.е. действий) и их имен в Inkscape. Благодаря этому упрощается создание собственного меню программы или схемы клавиатурных комбинаций.
  • –verb с указанным вслед за тем ID действия (verb) позволяет указать действие, вызываемое при запуске программы из командной строки.
  • –select с указанным вслед за тем ID узла позволяет добавить узел в список выделенных объектов.
  • –query-all выводит список всех объектов документа с перечисленным через запятую значениями x, y, высоты и ширины.

Эти параметры можно использовать, к примеру, для тестирования производительности. Например вот такой командой:

$ time inkscape –verb=FileClose my_complex_file.svg

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

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

Планы на будущее

В 2008 году должна выйти как минимум одна новая версия программы. При работе над ней разработчики планируют сконцентрироваться над рефакторингом (т.е. чисткой, упрощением и реструктуризацией) кода. Таким образом, приличная часть работы останется незаметной для пользователя. Однако в результате этой работы в будущем можно будет реализовывать многие задумки гораздо проще, чем сейчас.

По старой доброй традиции незадолго до выхода новой версии появились некоторые новшества, которые немного опоздали, чтобы попасть в 0.46. Среди них — редактирование масок и обтравочных контуров на холсте и мигание контуром, над которым занесен роковой курсор мыши.

В активе патчей — сохранение истории изменений вместе с документом и создание сценариев на Scheme. Ведется работа над улучшенной поддержкой устройств ввода (вроде Wacom), добавлен новый инструмент Ластик, не исключено появление многостраничности. Активно разрабатывается визуализация прилипания для разных инструментов (сейчас она работает для Селектора и для инструмента правки узлов). Кроме того, прошлогодний студент GSoC Йохан Энгелен руководит группой французских студентов, работающих над серией LPE. Результаты этой работы также могут появиться в версии 0.47.

Что касается версии 0.48, в нее как минимум должны войти результаты работы нескольких студентов GSoC этого года, в частности: поддержка SVG Fonts и новый вспомогательный инструмент для технического иллюстрирования. Кроме того, при подготовке 0.48 может произойти долгожданный переход на библиотеку Cairo, что даст определенный прирост производительности и упростит реализацию некоторых интересных функций.

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

Кстати, появилась новая традиция: заставка, занявшая второе место, теперь будет сопровождать следующую версию на этапе разработке вплоть до очередного конкурса.

047-devel-about-th.png


Обзор подготовлен Александром Прокудиным на основе официального списка изменений в версии 0.46.

1 Trackback / Pingback

  1. Новое в Inkscape 0.46 | Мультимедиа в Linux

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*


Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.