Как использовать GIMP внутри скрипта Python?

GIMP позволяет вам создавать плагин в Python, я хотел бы вызвать функцию GIMP, как я бы делал внутри одного из этих плагинов, но это возвращает следующую ошибку, поскольку GIMP не находит работающее ядро ​​GIMP для использования.

LibGimpBase-ERROR **: gimp_wire_write_msg: the wire protocol has not been initialized aborting...

Я хотел бы знать, возможно ли это? И если да, то как?

Спасибо

4 ответа

Решение

Расширения GIMP Python должны запускаться изнутри экземпляра GIMP. Если вы хотите использовать GIMPś API из Python, вам нужно запустить GIMP без графического интерфейса пользователя (передавая -i параметр из командной строки) и запуск пользовательского вызова API - с -b параметр командной строки - так что вы можете запустить вашу программу python_fu_do_it из командной строки, вызвав:

gimp -i -b \(python-fu-do-it \)

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

В реальной жизни полезно сделать так, чтобы ваш gimp-плагин предоставлял некоторые функции, которые выполняют действия с изображениями, которые вы хотите, и экспортировал их через сервер xmlrpc или jsonrpc - что легко сделать в Python. Затем вы запускаете этот "сервер изображений", используя описанный выше метод, и создаете автономный скрипт на python, который вызывает ваши функции, использующие gimp, через xmlrpc.

Одним из вариантов может быть создание процесса слушателя внутри gimp в виде скрипта (это может иметь значение для блокировки пользовательского интерфейса, здесь потребуются эксперименты), а затем заставить его прослушивать рабочую очередь beanstalkd. затем в ваших внешних процессах подайте рабочие запросы в очередь beanstalk, и beanstalk сможет обработать эти заказы вне процесса.

С учетом всего сказанного, 99% случаев использования, которые я мог бы представить, что вы хотите сделать это, возможно, ImageMagick будет более подходящим выбором, чем gimp, так как он предназначен для задач, которые, я полагаю, вас интересуют.

Этот пакет поможет вам начать. Посмотрите в файл ".bat".

http://gimpforums.com/attachment.php?aid=3142

Я должен сказать, что следующее утверждение не соответствует действительности:

"Расширения GIMP Python должны запускаться изнутри экземпляра GIMP".

Вам не нужно запускать gimp, чтобы использовать его функции, предоставляемые через python gimpfu API.

В любой программе на Python для Linux вы просто делаете следующее:

import sys  
sys.path.append('/usr/lib/gimp/2.0/python/')  
import gimpfu  

где /usr/lib/gimp/2.0/python/ - путь к установке gimp.

С уважением, Карло.

Другие вопросы по тегам