Информационные технологии

Системы растровой графики на примере GIMP

История развития графических пакетов под ОС Linux неразрывно связана с развитием X Window. Первые десять версий X Window создавались фактически всего тремя людьми – Робертом Шейфлером (Robert Sheifler), Джимом Геттисом (Jim Gettys) и Роном Ньюменом (Ron Newman). Три «основоположника» представляли в разумной пропорции главные движущие силы технологического развития.

Самыми распространенными графическими библиотеками для Linux стали сейчас GTK+ и QT, примерно аналогичные по уровню развития и по мощности Windows API. Обе они предоставляются бесплатно вместе с исходными текстами, но первая лицензируется на условиях GPL(GNU Public License), а вторая – на условиях собственной лицензии разработчика (норвежской компании Troll Tech), запрещающей модифицировать исходный текст библиотеки. В последнее время наметился определенный перевес в сторону GTK+. Руководство Troll Tech постепенно пересматривает свою лицензию в сторону большей либерализации, однако главное ограничение пока сохраняется. Библиотека GTK+ (GIMP Toolkit) первоначально создавалась для пакета обработки растровой графики GIMP (GNU Image Manipulation Program), о котором речь пойдет чуть дальше, но сейчас разработчики поставили себе цель сделать ее в самом деле универсальной, т.е. способной работать на многих платформах (Unix, Windows, BeOS) и языках программирования (Cи, Cи++, Паскаль, Perl, Eiffel, Guile, JavaScript, Python).

Свободно распространяемый на условиях лицензии GPL (т.е. вместе с исходными текстами) редактор растровой графики GIMP (www.gimp.org), является одним из самых известных прикладных пакетов, разработанных в рамках проекта GNU. Его название представляет собой сокращение от GNU Image Manipulaton Program – программа GNU для работы с изображениями.

Авторы поставили себе задачу сделать GIMP универсальным продуктом для всех платформ, но лучше всего разработана и наиболее популярна Linux-версия пакета, включаемая практически во все дистрибутивы Linux.

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

При запуске GIMP на экране появляется инструментальная панель (размер ее – изменяемый) и три дополнительные: Выбор кистей, Слои, Каналы и Контуры, Параметры инструментов.

Меню главной панели содержит три пункта – Файл, Расширения, Справка. В первом – ограниченный набор базовых операций: открытие и создание файла, выход из программы, установки (в том числе – настройка инструментов, таких, как кисти, цветовые палитры и т.д.); здесь же – захват изображения с экрана или путем сканирования, а также Диалоги, вызывающие многочисленные дополнительные (помимо видимых по умолчанию при запуске) панели. В пункте Xtns – базы данных дополнительных модулей (plug-ins) и скриптов, браузеры баз данных и веб-ресурсов, а также сами скрипты, в том числе т.н. script-fu, обуславливающие своеобразие программы. В пункте Справка – индексированные и контекстные справки, совет дня, а также отладчик скриптов.

Самое интересное в GIMP – пункт Script-Fu, не имеющий, насколько я знаю, аналогов в других растровых редакторах. Это – набор скриптов для содания всякого рода спецэффектов. Что в целом близко к назначению фильтров, но отличается тем, что скрипты эти может писать каждый. Если, разумеется, знает соответствующий язык (Tcl, Scheme и Perl). То есть мы имеем дело с неким набором интерпретируемых команд, посредством которых можно создавать какие-нибудь уникальные эффекты в личных (и не только) целях.

Скрипт (или сценарий) представляет собой последовательность инструкций для GIMP. Для «общения» с GIMP можно использовать несколько языков: Scheme, Perl, Python. «Родной» язык для GIMP – Scheme (читается «ским») – чтобы начать писать скрипты на Scheme не требуется никакого дополнительного программного обеспечения (кроме собственно GIMP) и обычно под Script-Fu подразумевается программирование именно на Scheme, чтобы работать с Perl или Python, придется установить дополнительные модули.

В поставку GIMP входит довольно большое количество скриптов на Scheme. Они хранятся в директории /usr/share/gimp/1.*/scripts. По способу вызова скрипты делятся на самостоятельные и связанные с изображением. Самостоятельные скрипты в процессе работы создают новое изображение и вызываются через главное меню GIMP Xtns->Script-Fu…. Наибольшее количество скриптов представлено в разделе Xtns->Script-Fu->Logos – это скрипты, создающие различные текстовые логотипы. Скрипты, связанные с изображением вызываются через меню изображения, т.е. через меню, которое появляется, если щелкнуть на изображении правой кнопкой мыши.

Scheme – вариант языка программирования LISP. LISP – это аббревиатура, расшифровывается как LISt Processing, т.е. язык для обработки списков. Существует и другая расшифровка – Language of Idiotic Silly Рarenthesis (язык идиотских глупых скобок) – спорное, но не лишенное смысла утверждение, т.к. несоблюдение правильного баланса скобок – один из главных источников ошибок программы, написанной на LISP и ему подобных.

GIMP поддерживает графические форматы GIF (включая анимацию), JPEG, PNG, PNM, XPM, TIFF, TGA, MPEG, PS, PDF, PCX, BMP, SGI, SunRas, XPM (формат, в котором хранятся пиктограммы X Window).

GIMP обладает более совершенным механизмом работы с видеоматериалами (соответствующие команды собраны в меню Video). Если возможность создания анимированных изображений путем размещения кадров в разных слоях есть во многих растровых редакторах «тяжелой» категории, то GIMP позволяет еще и работать с каждым кадром анимации как с отдельным файлом, используя для него слои, маски и прочие атрибуты, что очень удобно. А компонент программы под названием VCR Navigator обеспечивает просмотр результатов работы и манипулирование отдельными кадрами.

А.Л. Иванов