Новшества в Inkscape 0.45
Прислано prokoudine 05/02/2007

Кратко о главном

В этой версии редактора векторной графики Inkscape представлены результаты работы участников Google Summer of Code 2006, а также масса прочих улучшений. Основные изменения таковы:

Скорость отрисовки

Палитра отмены и повтора действий

В Inkscape появился диалог «История действий», вызываемый комбинацией CTRL+SHIFT+H или из меню «Правка→История действий...».

Диалог истории действий

Фильтры SVG

Благодаря программе Google’s Summer of Code в Inkscape появилась базовая поддержка фильтров SVG. Единственным доступным фильтром пока что является Гауссово размывание.

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

Гауссово размывание позволяет создавать немало фотореалистичных эффектов: тени произвольных очертаний, размывание вне зоны ГРИП, отбрасываемые тени, свечение и т.д. Кроме того, размытые объекты можно использовать в качестве маски для получения эффекта «растушёванной маски».

Вот несколько примеров использования:

Размывание используется для имитации освещения силуэта сзади. Обратите внимание на свечения по краям силуэта:

inkscape-0.45-volumetric-light.png

Пример Константина Роткевича демонстрирует имитацию размывания вне глубины резко изображаемого пространства:

inkscape-0.45-depthoffield.png

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

Инструменты

Узлы

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

Каллиграфическое перо

Пипетка

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

Векторизация

Каркасный режим отображения

<group id="startmode" outline="1"/> 

разместив её после открывающего тэга <group id=”options”>.

Импорт и экспорт

Сохранение в SVG

Для некоторых применений определённые аспекты сохраняемых Inkscape файлов SVG могут быть настроены правкой файла preferences.xml (графический интерфейс временно отсутствует). Группа <group id=”svgoutput”> внутри <group id=”options”> может содержать следующие атрибуты:

Экспорт в PDF

Улучшен экспорт в PDF:

Импорт и экспорт AI

Поддерживается импорт и экспорт только Adobe Illustrator 8.0 и ранее (формат на основе PostScript). Это уточнено в диалогах «Открыть» и «Сохранить».

Экспорт в PS/EPS

Экспорт в EMF

Расширения

Расширения эффектов Inkscape, создаваемые на Python благодаря классу inkex, обеспечивают неплохой прирост функциональности за счёт того, что новым разработчикам не нужно разрывать огромную базу кода программы на C и C++. Вместе с тем, есть план переписать некоторые эффекты на C++ и включить в основной код. С этой точки зрения эффекты можно рассматривать как удобный способ прототипирования и тестирования алгоритмов.

Новые эффекты

inkscape-0.45-coloreffects_thumb.png

 

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

inkscape-0.45-patternalongpath_thumb.png

Улучшенные

Инфраструктура

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

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

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

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

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

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

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

Примеры

inkscape-0.45-photorealistic-car2_thumb.png

inkscape-0.45-photorealistic-car1_thumb.png

Новые зависимости

Gtk+ 2.8

Numerical Python необходим для эффекта перспективы

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

Не используйте клон объекта как его обтравочный контур

Не используйте испорченные темы Gtk+ в Linux

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

Перед самым выпуском новой версии разработчики пересмотрели планы на дальнейшую разработку. В итоге сделано две основных привязки по функциональности: версия 0.50 должна полностью поддерживать SVG Mobile (что, к примеру, подразумевает DOM scripting и анимацию), а в версии 0.53 код должен быть разделён на отдельные компоненты.

Что касается следующей версии, она будет, главным образом, результатом рефакторинга кода. Ожидается опциональная поддержка 2geom — библиотеки, реализующей алгоритмы вычислительной геометрии, первая альфа-версия которой совсем недавно вышла. Ожидается возвращение экспорта в PDF на основе Cairo. Этот новый фильтр экспорта было решено дописать позже и потому его исключили из релиза, немного доработав прежний, заметно неидеальный экспортировщик.

В духе предыдущей версии (0.44) сразу после глубокой заморозки функциональности 0.45 появился чрезвычайно полезный патч, добавляющий возможность редактировать опорные точки градиента прямо на холсте (в 0.44 это был диалог истории действий). Любопытные могут посмотреть видео. Эта функция тоже будет доступна в 0.46 и уже есть в SVN trunk.


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