10.6. Вложенное меню «Script-Fu»

Рисунок 16.207. Вложенное меню «Script-Fu»

Вложенное меню Script-Fu

Этот подменю содержит некоторые команды Script-Fu, включая консоль Script-Fu. Script-Fu - язык для написания скриптов, которые позволяют выполнять последовательность команд GIMP автоматически.

10.6.1. Активация вложенного меню

  • Эта команда находится в меню изображения ФильтрыScript-Fu.

10.6.2. Обновить скрипты

Эта команда нужна каждый раз, когда вы добавляетет, удаляете или изменяете скрипт Script-Fu. Она перезагружает все скрипты и создаёт заново все меню, содержащие команды Script-Fu. Если эту команду не использовать, то GIMP не заметит изменений до следующей сессии.

Заметьте, что нет обратной связи, кроме как при сохранении, в случае ошибки во время работы скрипта.

10.6.3. Консоль Script-Fu

Консоль Script-Fu - это диалог, в котором можно тестировать команды Scheme в интерактивном режиме.

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

Рисунок 16.208. Консоль Script-Fu

Консоль Script-Fu

За дополнительной информацией о Scheme и примерах использования консоли Script-Fu обратитесь к главе Раздел 3, «Инструкция по Script-Fu».

Кнопки консоли Script-Fu

Браузер

Эта кнопка находится справа от поля ввода команд. При нажатии на неё появится браузер процедур с дополнительной кнопкой внизу:

Дополнительная кнопка браузера процедур

При нажатии на кнопку Применить в браузере процедур, текст выделенной процедуры скопируется в текстовое поле:

Применилась процедура PDB.

Теперь вам нужно заменить названия параметров (здесь: «layer» и «mode») настоящими значениями, и тогда вы можете вызвать процедуру нажатием клавишы Ввод.

Закрыть

При нажатии на эту кнопку консоль Script-Fu закроется.

Очистить

При нажатии на эту кнопку содержимое главного окна удалится. Заметьте, что потерю содержимого окна нельзя восполнить командой Сохранить.

Сохранить

Эта команда позволяет сохранить содержимое главного окна, то есть, вывод консоли Script-Fu. (включая символы «>»).

10.6.4. Запустить сервер

Эта команда запускает сервер, который читает и выполняет команды Script-Fu (Scheme), переданные ему через указанный порт.

Рисунок 16.209. Порт сервера Script-Fu

Порт сервера Script-Fu

Порт сервера

Номер порта, который будет прослушивать сервер Script-Fu. Можно запустить несколько серверов, каждый со своим номером порта.

Файл записи сервера

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

Серверный протокол Script-Fu

Протокол, используемый для общения с сервером Script-Fu, прост:

  • Каждый запрос (команда Script-Fu) длиной L, посылаемый серверу, должен следовать за этими тремя символами:

    Таблица 16.1. Формат заголовка для команд

    Номер байта Содержание Описание
    0 0x47 Магический байт ('G')
    1 L div 256 Верхний байт L
    2 L mod 256 Нижний байт L

  • Каждый ответ сервера (возвратное значение или сообщение об ошибке) длиной L следует за следующими четырьмя байтами:

    Таблица 16.2. Формат заголовка для ответа

    Номер байта Содержание Описание
    0 0x47 Магический байт ('G')
    1 код ошибки 0 при успехе, 1 при ошибке
    2 L div 256 Верхний байт L
    3 L mod 256 Нижний байт L

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

Чтобы не думать о таких деталях, исходный код GIMPPython поставляется со скриптом servertest.py, который можно использовать как простую командную строку для сервера Script-Fu.