编写GIMP python脚本(Writing a GIMP python script)

2019-08-01 01:56发布

我想要做的是从一个Python程序中打开GIMP(与subprocess.Popen,也许),并在同一时间,GIMP将与python脚本,将打开的图像,并添加一个图层...那么,如何启动我能做到这一点(我想GIMP有更好的文档......)?

更新:

我这样做: subprocess.Popen(["gimp", "--batch-interpreter" , "python-fu-eval" , "-b" ,"\'import sys; sys.path.append(\"/home/antoni4040\"); import gimpp; from gimpfu import *; gimpp.main()\'"])但是,即使控制台说: “批处理命令执行成功”,没有任何反应...

UPDATE2:

from gimpfu import *

def gimpp():
    g = gimp.pdb
    images = gimp.image_list() 
    my_image = images[0]
    layers = my_image.layers
    new_image = g.gimp_file_load_layer("/home/antoni4040/Έγγραφα/Layout.png")
    my_image.add_layer(new_image)
    new_layer = g.gimp_layers_new(my_image,  1024, 1024, RGBA_IMAGE, "PaintHere", 0, NORMAL_MODE)
    my_image.add_layer(new_layer)

register('GimpSync', "Sync Gimp with Blender", "", "", "", "", "<Image>/SyncWithBlender", '*', [], [], gimpp)

main()   

Answer 1:

好吧,我终于得到了它的工作。 我用GIMP Python脚本来创建一个瘸子插件,它可以做吨的东西,包括你提到的层。 然后,你可以从传递参数给蟒蛇GIMP脚本的命令行运行瘸子。 文章在GIMP批处理模式下使用Python的富是学习如何从命令行调用GIMP插件的优秀资源。 下面的例子将指定的图像加载到辫形,水平翻转,保存并退出辫形。

flip.py是瘸子插件,应放置在为〜/你的插件目录.gimp-2.6在我的情况/插件/ flip.py。

flip.py

from gimpfu import pdb, main, register, PF_STRING
from gimpenums import ORIENTATION_HORIZONTAL

def flip(file):
    image = pdb.gimp_file_load(file, file)
    drawable = pdb.gimp_image_get_active_layer(image)
    pdb.gimp_image_flip(image, ORIENTATION_HORIZONTAL)
    pdb.gimp_file_save(image, drawable, file, file)
    pdb.gimp_image_delete(image)

args = [(PF_STRING, 'file', 'GlobPattern', '*.*')]
register('python-flip', '', '', '', '', '', '', '', args, [], flip)

main()

从终端一个可以运行这样的:

gimp -i -b '(python-flip RUN-NONINTERACTIVE "/tmp/test.jpg")' -b '(gimp-quit 0)'

或从Windows CMD:

gimp-console.exe -i -b "(python-flip RUN-NONINTERACTIVE """<test.jpg>""")" -b "(gimp-quit 0)"

或者您可以运行使用Python脚本相同:

from subprocess import check_output
cmd = '(python-flip RUN-NONINTERACTIVE "/tmp/test.jpg")'
output = check_output(['/usr/bin/gimp', '-i', '-b', cmd, '-b', '(gimp-quit 0)'])
print output

我测试了,以确保他们的工作。 你应该看到的图像得到每个脚本运行后翻转。



文章来源: Writing a GIMP python script