Такие модули можно разрабатывать как отдельные программы с использованием библиотеки GDK, а можно пользоваться одним из встроенных в «ГИМП» интерпретаторов языков программирования. Именно наличие таких интерпретаторов и делает «ГИМП» программируемым графическим редактором. Можно сказать, что его архитектура подобна архитектуре текстового редактора Emacs.
Таких интерпретаторов на сегодня два. Забавное название Script-fu, видимо, следует понимать как английско-китайское выражение, означающее «мастерство сценирования» (напомним, что «сценариями» («скриптами») называют программы, написанные на интерпретируемых языках). Script-fu — это первый встроенный в «ГИМП» интерпретатор функционального языка Схема (Schema), являющегося потомком первого языка функционального программирования Лисп. Разработчик скрипта имеет доступ к многочисленным базовым функциям-графическим примитивам.
Схема — весьма продуманный и стройный язык, однако его методический потенциал не может в полной мере быть раскрыт в сегодняшних курсах информатики в средней школе, программирование в которых вводится в директивной (сентенциональной) парадигме. На Схеме, так же, как и на Лиспе, можно писать в директивном стиле, однако изящества и простоты, столь необходимых в обучении, достичь при этом возможным не представляется.
Директивен другой язык, интерпретатор которого также встроен в «ГИМП». Это Перл (Perl), его «ГИМП»-овская реализация называется Perl-fu. Хороший программист может писать на Перле чисто и аккуратно, однако синтаксис языка сам по себе настолько гибок (чтобы не сказать «жидок»), что, по нашему мнению, Перл совершенно не годится на роль изучаемых в числе первых (хотя существуют и другие мнения, весьма авторитетные).
Добавление в «ГИМП» еще одного интерпретатора (например, алголо— или паскалеподобного языка) не представляется особо сложной задачей, однако о таких проектах ничего не известно, и, наверное, от программирования обработки изображений «внутри» «ГИМП» как от простой в методическом освоении темы большинству педагогов стоит пока отказаться.
Интерактивная функциональность и эргономика
Тем не менее, базовой интерактивной функциональности «ГИМП» (включая доступные модули) вполне достаточно, чтобы покрыть обычно изучаемые в школе вопросы обработки графики.
Рис. 5-1
При запуске «ГИМП» на экране открывается ряд окон (Рис. 5-1). Главное окно содержит меню основных функций, панель пиктографически обозначенных «инструментов» и области, в которых отображаются текущие значения основного и фонового цветов, формы кисти, текущего градиента. Окна изображения соответствуют отдельным открытым графическим файлам (или слоям в них).
Дополнительные инструментальные окна (по какой-то причине названные «диалогами») могут открываться из меню главного окна. Однако их всего десяток («Слои, каналы и контуры», «Параметры инструментов», «Кисти», «Шаблоны», «Градиенты», «Палитра», «Устройства ввода», «Индекс документов», «Консоль ошибок»), а основной массив функций, применяемых к текущему или вновь создаваемому изображению или выбранному участку изображения (включая функции, реализованные внешними модулями-фильтрами) «достаются» через контекстное меню, открывающееся по щелчку правой кнопкой мыши в окне изображения.
Рис. 5-2
Рис. 5-3
Зато можно воспользоваться (непривычным для пользователей упрощенных графических сред, таких, как «Майкрософт Уиндоуз») свойством графической библиотеки GTK+, называемым «линия отрыва». Каждое меню наверху содержит пунктирную линию, щелкнув мышью на которой можно превратить это меню в самостоятельное инструментальное окно, сохраняющееся, пока пользователь явным образом его не закроет (Рис. 5-2). Таким образом (учитывая настраиваемость самой системы меню) можно в любой момент создать на экране дополнительные «панели инструментов», содержащие функции, которыми в ближайшее время предполагается воспользоваться. Привыкшему к другому стилю работы пользователю это непривычно, однако, привыкнув, эту интерфейсную особенность можно использовать весьма эффективно.
Читать дальше