Глава 12. Создание сценариев

Содержание

1. Плагины
1.1. Введение
1.2. Использование плагинов
1.3. Установка новых плагинов
1.4. Написание плагинов
2. Использование скриптов Script-Fu
2.1. Скрипт-Фу?
2.2. Установка скриптов
2.3. Работа и ошибки
2.4. Виды Скрипт-Фу
2.5. Самостоятельные скрипты
2.6. Зависящие от изображения скрипты
3. A Script-Fu Tutorial
3.1. Getting Acquainted With Scheme
3.2. Variables And Functions
3.3. Lists, Lists And More Lists
3.4. Your First Script-Fu Script
3.5. Giving Our Script Some Guts
3.6. Extending The Text Box Script
3.7. Your script and its working

1. Плагины

1.1. Введение

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

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

In addition to the plugins included with GIMP , many more are available on the net. A large number can be found at the GIMP Plugin Registry [GIMP-REGISTRY], a web site whose purpose is to provide a central repository for plugins. Creators of plugins can upload them there; users in search of plugins for a specific purpose can search the site in a variety of ways.

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

[Предупреждение] Предупреждение

Плагины являются полноценными исполняемыми программами, они могут тоже, что и другие программы, включая установку "back-door" (тайного входа) в вашу систему или иным образом подвергать риску.

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

[Внимание] Внимание

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

1.2. Использование плагинов

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

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

[Примечание] Примечание

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

[Подсказка] Подсказка

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

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

1.3. Установка новых плагинов

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

1.3.1. Linux / Unix-sytem like systems

Большинство плагинов делятся на две категории: небольшие, чей исходный код распространяется в одном файле с расширением ".c", и большие, чей исходный код распространяется в директории, содержащей многочисленные файлы, включая Makefile.

Для одного простого плагина, назовём его borker.c, установка представляет собой просто запуск команды gimptool-2.0 --install borker.c. Эта команда компилирует плагин и устанавливает его в вашу персональную директорию плагинов, ~/gimp-2.4/plugins, если вы её не изменили. Это заставит его автоматически загружаться при следующем запуске GIMP. Для того, чтобы проделать эти дейстия, вам не нужно для получать права администратора. Если плагин не скомпилируется, ну, подойдите к этому творчески.

Как только вы установили плагин, возникает вопрос: как его активировать? Расположение в меню определяется самим плагином, поэтому ответ на этот вопрос вам нужно искать или в документации к плагину (если таковая имеется), или запустив диалог описания плагина (в Расш./Список дополнений) поискать плагин по его имени и посмотреть на закладке Просмотр дерева. Если вы всё же ещё не найдёте, окончательно исследуйте меню или посмотрите в исходном коде в разделе «Регистр» - наиболее простой способ.

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

Некоторые плагины (особенно те, которые основаны на шаблоне плагина GIMP) предназначены для установки в основную системную директорию GIMP, вместо вашей домашней директории. Для таких вам будут нужны права администратора, чтобы выполнить последнюю стадию установки (make install).

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

1.3.2. Windows

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

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

Если вы желаете настроить окружение для сборки, и готовы к героическим поступкам, можете найти достаточно недавнее описание этих действий на странице GIMP Wiki HowToCompileGimp/MicrosoftWindows [GIMP-WIKI-MS]. Поскольку это Wiki, кто угодно может его править, поэтому пожалуйста, поддержите эту страницу добавлением совета, основанном на вашем собственном опыте.

1.3.3. Apple Mac OS X

How you install plugins on OS X mostly depends on how you installed GIMP itself. If you were one of the brave and installed GIMP through one of the package managers like fink [DARWINORTS] or darwinports, [FINK] the plugin installation works exactly the way it is described for the Linux platform already. The only difference is, that a couple of plugins might be even available in the repository of you package manager, so give it a try.

If you on the other hand are one of the Users that preferred to grab a prebuild GIMP package like GIMP.app, you most probably want to stick to that prebuild stuff. So you can try to get a prebuild version of the plugin of you dreams from the author of the plugin, but I'd not want to bet on this. Building your own binaries unfortunately involves installing GIMP through one of the package managers mentioned above.

1.4. Написание плагинов

Если вы желаете научиться написанию плагинов, вы можете найти исчерпывающую помощь на вебсайте разработчиков GIMP[GIMP-DEV-PLUGIN]. GIMP это сложная программа, но команда разработчиков приложила усилия для сглаживания трудностей обучения написанию плагинов: доступны хорошие инструкции и примеры, и основная библиотека, используемая для взаимодействия с GIMP (именуемая «libgimp ») имеет хорошо документированный API. Хорошие программисты, обучаясь с помощью изменения существующих плагинов, часто способны осуществить интресные вещи всего лишь после пары дней работы.