Русскоязычная векторная графика

Балдин Е.М.

декабрь 2007



Игорь Новиков и Валёк Филиппов.

Русскоговорящее сообщество постепенно набирает вес в окружающем нас мире. Свободный векторный графический редактор sK1 (авторы Игорь Новиков и Валёк Филиппов) на конкурсе Les Trophees du libre 2007 закрепил положительную тенденцию. За всю пятилетнюю историю этого конкурса, это первый случай выхода в финал проекта из «эксСССР».

Евгений М. Балдин LXF: Представьтесь пожалуйста.

Игорь Новиков Игорь: Рoд занятий — software engineer. По-нашему: инженер-программист. Харьков, Украина. Степень магистра по специальности «Биохимия», специализация — генная инженерия.

Валёк Филиппов Валёк: Системный инженер со специализацией в сетевой безопасности. Степень магистра по специальности «Молекулярная биология и биотехнология», CCIE R&S, CISSP.

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

LXF: Почему именно sK1?

Игорь: sK1 — это производное от Sketch[*]. Большая «K» — акцентирует ориентацию на KDE, но библиотечные зависимости от Qt/KDE отсутствуют, равно как и от Gtk/GNOME. Просто общая компоновка приложения более схожа с кдешными. Плюс наиболее приемлемыми на наш взгляд являются «open/save» диалоги KDE. Правда sK1 может использовать и кдешные и гномовские и тиклевые диалоги (в зависимости от платформы). Стиль виджетов также настраиваемый (он базируется на png-шаблонах). Цветовая схема импортируется из текущего десктоп-менеджера, но может использоваться и своя. Наша цель — создать приложение, которое будет иметь родной (ну практически родной) вид на любой платформе: GNU/Linux, MacOS X, Windows.

Единичка в названии — это то, к чему мы стремимся, т.е. версия 1.0. Неудобно ведь называть sK0 (улыбается). Если проект выживет, то при смене мажорной версии появится sK2 и т.д. Ну и формат файлов от *.sk1 поменяется на *.sk2.

LXF: Чем sK1 лучше других векторных графических редакторов?

Игорь: Пока рановато делать громкие заявления. По импортёрам однозначно лучше многих свободных проектов, связанных с векторной графикой. По производительности и требованиям к системным ресурсам, sK1 также превосходит все свободные аналоги (Inkscape, Karbon 14, OO Draw), приближаясь к коммерческим, типа CorelDRAW и Xara.

LXF: Расскажите об истории создания sK1.

Игорь: Если вкратце, то дело было так:

В 2003 году в Украине начались жёсткие проверки лицензионности программного обеспечения. Продавцы были не готовы к внезапному возникновению спроса на дорогостоящее ПО Adobe, Corel, Autocad и др. «С полки» в лучшем случае можно было купить MS Windows. У многих небольших компаний был выбор между закрытием и попыткой миграции на свободное ПО. Рынок «пиратского» софта проверки и репрессии не затрагивали, поэтому «пираты» отреагировали предложением разнообразных дистрибутивов GNU/Linux.

В то время я был совладельцем небольшой полиграфической фирмы в Харькове. Надо было как-то выходить из созданной ситуации. Бухгалтерскую машину перевели на Mandrake 9.1 достаточно легко, т.к. на ней готовилась только первичная документация. А вот с дизайнерскими машинами было намного сложнее. В качестве основного инструмента мы использовали CorelDRAW. Попытка использовать CorelDRAW 9.0 for Linux провалилась с треском: продукт оказался неприемлемо сырым, даже на RedHat 7.0, который был заявлен в качестве поддерживаемого дистрибутива.

Поэтому пришлось обратить внимание на свободные векторные редакторы. Выбор пал на Sketch, который хоть и не был пригоден для полиграфии, но зато мог импортировать файлы в форматах CMX (Corel) и AI (Adobe Illustrator). Практически сразу же мы столкнулись с различными проблемами от несовершенства интерфейса до отсутствия необходимых функций. Чтобы исправлять и дополнять исходный код пришлось взяться за изучение языка Python, который использовался для написания Sketch.

Проект первоначально был предназначен для внутреннего использования: мы не собирались «спасать человечество от засилья Microsoft и тому подобное». Но Free Software быстро «научило нехорошему» и в начале 2004-го года проект был выставлен на SourceForge.

В последствии проблемы в работе фирмы, связанные с предвыборной ситуацией на Украине, вынудили продать бизнес...Я решил стать профессиональным разработчиком и перешёл на работу в американскую аутсорсинговую компанию. Пертурбации в жизни страны («Оранжевая революция») отразились и на проекте. Работа была практически остановлена. И лишь с конца 2005-го проект снова ожил. В команде на тот момент остался только я, как основной девелопер. Остальные участники по разным обстоятельствам не смогли продолжать работу.

В начале 2006-го года активное параллельное участие в проекте новостного портала LinuxGraphics.ru (проект Александра Прокудина) привело к выходу первой ознакомительной версии sK1. Это произошло благодаря тому, что Александр активно работает в проектах Scribus и Inkscape. Он сыграл роль инициатора в выпуске ознакомительной версии. Кроме того, он познакомил меня с участниками проекта Scribus а также с Вальком.

Сообщество приняло sK1 благосклонно, что стимулировало дальнейшее развитие проекта: были реализованы уникальные свойства sK1, которые оправдывают позиционирование проекта как ориентированного на полиграфию. Это прежде всего поддержка CMYK[*] цветов, управление цветом, поддержка CMYK при генерации PostScript[*]. В дальнейшем был добавлен дополнительный рендерер графики на базе библиотеки Cairo[*], что позволило получить субпиксельное сглаживание и поддержку прозрачности.

Примечательно, что в векторном редакторе Inkscape[*], который мы также рассматривали в качестве возможной замены CorelDRAW, поддержка CMYK и управление цветами появились в SVN проекта только недавно и будут доступны только в версии 0.46. Переход Inkscape на Cairo начат и скорее всего будет осуществлён полностью только в версии 0.47, а в 0.46 будет использоваться только для каркасного режима.

В 2007 году в sK1 появилась уникальная функциональность: поддержка импорта файлов CorelDRAW (CDR). Инициатором этого, как и в случае с выпуском первой ознакомительной версии sK1, выступил Александр Прокудин. Вокруг этого формата существовало, да и сейчас можно увидеть на форумах, массу баек, типа «использовать эти файлы без кода CorelDRAW невозможно», мол это «вещь в себе», что-то из серии «непознаваемое» и т.д. Поэтому изначально был определённый психологический барьер в этом плане. Но как только мы взялись за работу над форматом, то очень быстро стало понятно, что особых проблем то и нет. Да, это непростой бинарный формат, но и не самый сложный. Нам достаточно быстро удалось создать качественный универсальный импортёр, который вполне пригоден для повседневного использования.

В мае 2007 года sK1 был представлен на конференции Libre Graphics Meeting 2007, в Монреале (Канада). Поскольку импортёр CDR вызвал интерес у других проектов, то сразу же после конференции мы организовали подпроект UniConvertor (http://sk1project.org/). Это консольное приложение, которое использует движок sK1 для конвертации файлов между векторными форматами. Т.е. выполняет функции cdr2svg, ai2sk1, cmx2svg и т.д. Фактически, UniConvertor стал заменой свёрнутому проекту VectorSection (UberConvertor) фирмы Xara, а sK1, в каком-то смысле, можно назвать заменой замороженной свободной версии редактора XaraLX. Разработчики Inkscape уже добавили в SVN возможность использования UniConvertor к своему приложению, чтобы обеспечить импорт файлов CorelDRAW. Эта возможность также будет доступна в Inkscape версии 0.46.

Мы разобрали и добавили поддержку CDT, CCX, CDRX. В результате на данный момент sK1 и UniConvertor охватывают практически все векторные форматы CorelDRAW. Естественно, далеко не все элементы формата полностью поддерживаются, но уже на данном этапе импортёры вполне пригодны для ежедневной работы в полиграфии. Наш CDR импортёр поддерживает файлы версий с 7-ой по 13-ую, аналогичными возможностями обладает только импортёр Adobe Illustrator (поддерживает версии с 5-ой по 10-ую). Коммерческая версия редактора Xara, например, может импортировать CDR файлы версий 3 и 4, что уже давно не отвечает реалиям жизни, т.к. в этих версиях формата нельзя сохранить документы из последних версий CorelDRAW.

В октябре 2007 года sK1 прошёл первичный отбор проектов в конкурсе Throphees du Libre и занял второе место в финальном конкурсе в группе «Multimedia/Games». Конкурс проходил 29-30 ноября в Soissons, Франция.

LXF: Как распределены обязанности в Вашей группе?

Валёк: С моей точки зрения у нас имеется своеобразный «социальный контракт»: я помогаю расколдовать формат CDR, а Игорь добавляет поддержку VSD/VSS (файлы Microsoft Visio) в sK1 (теперь уже и в UniConvertor).

LXF: Когда будет стабильная версия sK1?

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

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

LXF: Что ожидается получить в итоге?

Игорь: В нашем понимании sK1 — это базовая платформа «аля Эклипс»[*], поверх которой можно наращивать различный функционал.

Планы очень просты — довести продукт до приемлемого состояния и вытеснить из базового рынка проприетарные аналоги (улыбается). Всё очень скромно.

Относительно ближайших планов: у нас почти созрели улучшенные импортёры WMF (Windows Metafile) и EMF (Enhanced Metafile). По поддержке формата WMF проведено сравнительное исследование коммерческих и опенсорсных проектов — скоро этот отчёт будет опубликован на нашем сайте (http://sk1project.org/). На подходе долгожданный VSD импортёр (файлы Microsoft Visio). Сделана существенная наработка в плане дальнейшего разбора CDR формата. Имплементация в коде этих знаний также планируется в ближайшее время. Начат первичный разбор формата FreeHand. Планируется также поддержка режущих плоттеров. В общем фронт работ достаточно широк (улыбается).

LXF: При разработке Вы ориентируетесь на профессиональную аудиторию или на «сферического коня в вакууме» — «простого пользователя»?

Игорь: Не секрет, что подавляющее число пользователей этих приложений отнюдь не суперпрофи. Уж так повелось: если надо нарисовать простенькую диаграмму, то берётся профессиональная программа, отредактировать фото — Photoshop CS3 с уймой неиспользуемого функционала, написать «Hello world» — IDE уровня энтерпрайз и не ниже (улыбается).

Вот поэтому первичная аудитория, на которую нацелен sK1 — это труженики препресс[*] индустрии. Эта аудитория хочет мигрировать на опенсорс, но ей нужен реально работающий инструмент, а не макет.

Для профессионалов должен быть обеспечен необходимый минимум и этого минимума с головой хватит «обычным пользователям». Если им потребуется настройка цветов по CMYK или цветопроба или registration color (что крайне и крайне редко), то они будут иметь такую возможность. В большинстве случаев эти свойства не востребованы и «обычному пользователю» «за глаза» хватает и Dia и Inkscape, но психологически это очень важный момент.

Иными словами, мы хотим создать продукт с низким порогом «вхождения» как CorelDRAW и c профессиональным качеством конечного результата (постскрипта, который выходит на принтер) как у Adobe Illustrator.

LXF: Расскажите пожалуйста о Les Trophees du libre 2007[*].

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

Стоит отметить, что уровень организации конкурса весьма высок. CETRIL (Centre Europеen de Transfert et de Recherche en Informatique Libre), под патронатом которой проходил конкурс, постаралась как можно детальнее подготовить данное мероприятие, максимально содействуя всем участникам.

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

Из недостатков — конкурс всё-таки франкоориентированный. Это отмечали многие участники. Организаторы конечно постарались обеспечить мероприятие синхронным переводом, но не везде и всегда это реально было сделать. Мне, например, даже не сказали, что переводчик свободно говорит по-русски. Правда видимо их смутил тот факт, что я из Украины. Уже после мероприятия переводчик у меня спрашивает «А вы принципиально в Украине не говорите по-русски?» (улыбается)

LXF: Судя по Вашим блогам, Вы специально активно готовились к этому конкурсу. Что именно дотачивалось в sK1 «под конкурс» и что обеспечило Вам такой успех?

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

Персонально я не считаю второе место грандиозным успехом. Незнание французского на мой взгляд и обеспечило более низкое место, чем могло быть. Но это персональное ИМХО.

А вот выход в финал — это результат всех четырёх лет работы над проектом. Нельзя назвать что-то конкретное из свойств sK1, что обеспечило прохождение в финал.

LXF: Почему Вы выбрали категорию Multimedia and games и почему в этой категории среди победителей не оказалось игр?

Игорь: Когда я заполнял заявку на конкурс, то просто использовал классификацию на SourceForge. Там векторные редакторы отнесены к мультимедиа. Вот в общем-то и все.

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

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

LXF: Что дало Вам участие в конкурсе? Есть ли схожие планы на будущее (типа Google Summer)?

Игорь: Думаю, основной результат — известность в кругах открытого программного обеспечения. Что касается будущего, то ближайшее мероприятие Libre Graphics Meeting 2008, который будет проходить в Бреслау, Польша. Затем летняя конференция GUADEC в Стамбуле. А на Google Summer не проходим ввиду возрастного ценза — мы давно уже не студенты (улыбается).

LXF: Чего с Вашей точки зрения не хватает сообществу открытых исходников?

Игорь: Прежде всего не хватает профессионалов в предметной области. В каком-то смысле удачное развитие проекта обусловлено моим многолетним опытом в полиграфии. Такой багаж знаний невозможно получить «наскоком по книжкам».

Сходная ситуация и в других областях. Коммерческие проекты могут себе позволить держать и программистов и предметных специалистов. В опенсорс к сожалению это затруднено, поскольку тяжело при эпизодическом общении быстро найти общий язык и выработать какую-то стратегию развития проекта. Наиболее оптимальный вариант — это когда программист является специалистом в предметной области. Например, в тиме Scribus[*] такая же ситуация как и у нас. В результате проект действительно прочно стоит на ногах.

Валёк: Я бы добавил что часто не хватает способности договариваться и делать «грязную» работу сообща. Ну и нужно побольше коммуникаторов-информаторов, таких как Александр Прокудин (http://linuxgraphics.ru/).

LXF: Чего бы Вы пожелали сообществу?

Валёк: Счастливого Нового Года!

Игорь: Хай щастить в Новому Роцi!

Об этом документе ...

Русскоязычная векторная графика

This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.71)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -split 0 -local_icons -no_navigation sK1.tex

The translation was initiated by baldin on 2008-03-10


Примечание

... Sketch[*]
Свободный векторный графический редактор, позднее переименованный в Skencil http://www.skencil.org/
... CMYK[*]
CMYK (Cyan, Magenta, Yellow, blacK) — схема формирования цвета, используемая прежде всего в полиграфии для стандартной триадной печати.
... PostScript[*]
Язык описания страниц, в основном используемый в настольных издательских системах
... Cairo[*]
Свободная векторная графическая библиотека, предоставляющая независимый от устройств API. На сегодня она поддерживает вывод через X Window System, Win32 GDI и BeOS API. С помощью Cairo можно копировать графику в локальные буферы, выводить в виде форматов PNG, PDF, PostScript и SVG. Если есть такая возможность, то Cairo использует аппаратное ускорение. Сайт проекта http://cairographics.org/.
... Inkscape[*]
Свободный векторный графический редактор основанный в 2003 году как ответвление проекта Sodipodi. Официальный сайт проекта Inkscape http://www.inkscape.org/
... Эклипс»[*]
Eclipse — свободная среда для разработки приложений любой сложности. Изначально разрабатывалась фирмой IBM, далее проект был передан для разработки сообществу. На сегодня Eclipse разрабатывается Eclipse Foundation, Сайт проекта http://www.eclipse.org
... препресс[*]
От английского prepress — предпечатная подготовка.
... 2007[*]
Сайт конкурса http://www.tropheesdulibre.org/?lang=en
... Scribus[*]
Свободное программное приложение для визуальной вёрстки документов для целей полиграфии. Сайт проекта http://www.scribus.net/,


baldin 2008-03-10