在Windows上使用gimp作为服务器

时间:2012-01-25 11:16:26

标签: sockets gimp script-fu

这是我的问题。

CONTEXT

我正在建立一个整个系统来处理我公司的图像处理。我们正在处理.psd.cr2文件,进行大量不同的操作(比如开发.cr2文件,更改展示图,使用图层构建图像架构等)
由于我们很年轻(==>非常小,预算有限),我们没有专门用于图像处理的计算机。但是我们仍然需要大量的处理。 所以我做的是:
我设置了一个NAS,然后在公司的3台计算机上安装了一个.AS3 deamon,这台计算机上有一个Photoshop(我只是设法在.as3中做到这一点,我知道这很遗憾。) 该程序使用cs5.1中全新的“远程连接”来控制photoshop。基本上,程序只是检查队列是否有一些工作要做,如果是,它使用.jsx文件将订单传输到photoshop。
最后,当我们想在计算机上使用photoshop时,我们就停止使用photoshop,然后在需要处理时重新激活它。

问题

现在这个工作正常,但我有一个很大的问题: 由于财务原因,很难扩展此系统==> photoshop不是免费的!这是一个问题,因为可扩展性是一个目标...

所以我的想法是以同样的方式使用Gimp。公司中的任何新计算机都将安装gimp,并使用一些Python / C ++ /任何程序来控制它。

问题

除了gimp 2.6(2.8 !!!)仍然缺乏对图层组的支持这一事实外,我很难用它做简单的插座连接!
程序A如何向Gimp发送python脚本来处理图像?

1 个答案:

答案 0 :(得分:1)

可以做到并且不难做到。通过检查GIMP的脚本API<可以看出GIMP中可以做什么和不可以做什么?称为程序数据库 - 您可以通过访问帮助 - >来查看可用的功能和用法。程序GIMP内的数据库。这些在“pdb”模块上可用于Python 下划线替换函数名称上的破折号(每当第一个参数为“交互/非交互时,ti应该从调用中省略”)

最大的问题是所有这些功能都可以在运行GIMP的实例中运行 - 从GIMP外部运行的Pytho导入gimp,gimpfu或pdb模块会给你一个错误。

另一方面,除了GIMP的API之外,您还可以使用完整的 Python语言 - 只需在其标准库中使用它,以及您选择安装的任何第三方模块。< / p>

因此,您可以编写一个侦听XML-RPC调用的应用程序,接收一些文本消息,并将此消息“exec”作为脚本 - voilá(如果您完全信任脚本的请求源,请执行此操作)

为GIMP编写Python脚本可能有些棘手 - 我们鼓励您在Gimp-&gt; filters-&gt; Python-&gt;控制台菜单中使用Python控制台,并检查其他地方的文档和示例(http:/ /stackoverflow.com/questions/tagged/gimp+python)关于如何完成这些脚本。另一方面,使用Python在GIMP插件中运行创建一个xml-rpc服务器是一件容易的事,甚至官方的Python文档也可以给你一个例子:http://docs.python.org/library/simplexmlrpcserver.html

您应该将“xml-rpc脚本服务器”创建为GIMP-Python插件,并使用命令行gimp -i -b (python-fu-myserverplugin )启动GIMP以使其运行。