В процессе работы с gimp часто требуется выполнять одни и те же действия.
Например что бы создать заготовку для кнопки :
- Создать слой
- Выделить область
- Залить градиентом
- Уменьшить выделение
- Залить градиентом
- Добавить эффектов
Когда таких действий много, они начинают отнимать много времени.
Эта работа превращаеться в только механическую – она не доставляет удовольствия.
Эта работа превращаеться в только механическую – она не доставляет удовольствия.
Как быть? Надо автоматизировать!
Как вообще автоматизировать работу в GIMP?
Тогда я начал поиск вариантов.
Первое что я нашёл : script-fu.
Штатный способ написания скриптов для Gimp на Scheme.
Проблемы: Я не знаком со Scheme
Штатный способ написания скриптов для Gimp на Scheme.
Проблемы: Я не знаком со Scheme
(Еще поподался мануал для Ruby, но для меня Python вкуснее)
Как автоматизируют GIMP с помощью GIMP Python?
Документация обновлялась давно : 16-May-2006.
Возможно и действительности она уже не соответствует.
Возможно и действительности она уже не соответствует.
Значит буду искать примеры на стороне.
Я отправился на сайт с плагинами для Gimp: http://registry.gimp.org/ и выбрал там тэг Python.
Сайт, кстати, очень хороший. Рекомендую
Нашёл на нём plugin с простым кодом : Facial Symmetry.
Работает и соответствует доке по GIMP Python.
Пишем hello world
Стандартная заготовка будет примерно такая:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from gimpfu import *
def python_PLUGINNAME(image, drawable):
print "Hello world"
register(
"python_PLUGINNAME",
"Short description", # Описание
"Long description", # Описание
"Author", # Автор
"Author", # Автор
"Year", # Год
"<Image>/MyEffects/MenuItemName", # Пункт меню
"*", # Тип изображения
[], # Входные параметры
[],
python_PLUGINNAME)
main()
Что бы увидеть “Hello world” запускаем GIMP из под консоли.
Это помогает с отладкой.
Это помогает с отладкой.
Внутрь нашей функции пишем код.
Как создать слой или картинку понятно из доков.
А вот какие бывают вызовы у pdb?
Как создать слой или картинку понятно из доков.
А вот какие бывают вызовы у pdb?
Открываем : Справка -> Просмотрщик процедур
Как видно из скриншота процедур там много
Алгоритм такой :
- Находим процедуру, например plug-in-sharpen
- Меняем в названии минус на подчёркивание и добавляем pdb., так pdb.plug_in_sharpen
- Читаем что передавать в параметрах и передаём
P.S: Рекомендую плагин : Layer Effects
Источник: kabakov.wordpress.com