17
Апр
10

Автоматизация Gimp с помощью Python

Зачем автоматизировать?

В процессе работы с gimp часто требуется выполнять одни и те же действия.

Например что бы создать заготовку для кнопки :

  • Создать слой
  • Выделить область
  • Залить градиентом
  • Уменьшить выделение
  • Залить градиентом
  • Добавить эффектов

Когда таких действий много, они начинают отнимать много времени.
Эта работа превращаеться в только механическую — она не доставляет удовольствия.

Как быть? Надо автоматизировать!

Как вообще автоматизировать работу в GIMP?

Тогда я начал поиск вариантов.

Первое что я нашёл : script-fu.
Штатный способ написания скриптов для Gimp на Scheme.
Проблемы: Я не знаком со Scheme

Второе : GIMP Python.
Плюсы: Python!; Минусы: Не очень ясно из документации как это работает.

(Еще поподался мануал для 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?

Открываем : Справка -> Просмотрщик процедур

Как видно из скриншота процедур там много :)

Алгоритм такой :

  • Находим процедуру, например plug-in-sharpen
  • Меняем в названии минус на подчёркивание и добавляем pdb., так pdb.plug_in_sharpen
  • Читаем что передавать в параметрах и передаём

В остальном полагаемся на доки и примеры

P.S: Рекомендую плагин : Layer Effects

About these ads

0 Responses to “Автоматизация Gimp с помощью Python”



  1. Добавить комментарий

Добавить комментарий

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

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s


Статистика

  • 5,753 просмотров

RSS Последнее чтиво

  • Произошла ошибка; возможно, лента недоступна. Повторите попытку позже.

Отслеживать

Get every new post delivered to your Inbox.

%d такие блоггеры, как: