Как использовать 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".
Я должен сказать, что следующее утверждение не соответствует действительности:
"Расширения 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.
С уважением, Карло.