GIMP允许你在Python中创建插件,我想做的就是调用GIMP函数,就像我在其中一个插件中所做的那样但这会返回以下错误,因为GIMP没有找到任何正在运行的GIMP Core使用
LibGimpBase-ERROR **: gimp_wire_write_msg: the wire protocol has not been initialized aborting...
我想知道它是否可能?如果是的话,怎么样?
由于
答案 0 :(得分:11)
GIMP的Python扩展需要从GIMP实例内部运行。如果您想使用Python中的GIMPśAPI,您必须在没有图形UI的情况下运行GIMP(从命令行传递-i
参数)并使用-b
命令运行对api的自定义调用line参数 - 所以,你可以从命令行调用:
gimp -i -b \(python-fu-do-it \)
请注意,这是运行gimp-python扩展的唯一方法:您必须在GIMP进程内运行它。
在现实生活中,一个有用的事情可能是让你的gimp-plugin公开一些对你想要的图像执行动作的函数,并通过xmlrpc或jsonrpc服务器导出它们 - 这很容易在Python中完成。然后使用上面的方法启动这个“图像服务器”,并创建独立的python脚本,通过xmlrpc调用你的gimp-using函数。
答案 1 :(得分:0)
一种选择是在gimp中创建一个侦听器进程作为脚本(这可能会影响锁定UI,这里需要实验),然后让它来监听beanstalkd工作队列。然后在你的外部进程中,在beanstalk队列上提交工作请求,然后beanstalk可以在进程外处理这些命令。
尽管如此,99%的用例我可以想象你想要做到这一点,也许ImageMagick比gimp更合适,因为它是为我想象你感兴趣的任务设计的。
答案 2 :(得分:0)
此软件包可以帮助您入门。 查看“.bat”文件。
答案 3 :(得分:-3)
我必须说下面的陈述不正确:
“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安装的路径。
问候,卡洛。