Как использовать GIMP внутри скрипта Python? - PullRequest
9 голосов
/ 19 ноября 2011

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

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

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

Спасибо

Ответы [ 3 ]

11 голосов
/ 20 ноября 2011

Расширения 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.

0 голосов
/ 20 июня 2013

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

0 голосов
/ 23 июня 2012

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

"Расширения 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.

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

...