如何在Python脚本中使用GIMP?

时间:2011-11-19 18:24:56

标签: python gimp

GIMP允许你在Python中创建插件,我想做的就是调用GIMP函数,就像我在其中一个插件中所做的那样但这会返回以下错误,因为GIMP没有找到任何正在运行的GIMP Core使用

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

我想知道它是否可能?如果是的话,怎么样?

由于

4 个答案:

答案 0 :(得分:11)

GIMP的Python扩展需要从GIMP实例内部运行。如果您想使用Python中的GIMPśAPI,您必须在没有图形UI的情况下运行GIMP(从命令行传递-i参数)并使用-b命令运行对api的自定义调用line参数 - 所以,你可以从命令行调用:

运行你的python_fu_do_it程序
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”文件。

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

答案 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安装的路径。

问候,卡洛。