Gimp python-fu : 如何从 1 jpg 和 1 png 创建和保存多层 xcf?

Gimp python-fu : How to create and save multilayer xcf from 1 jpg and 1 png?

我有一个巨大的目录列表,每两个图像包含一个:1 个 jpg 文件和 1 个 png 文件;我想从外部脚本创建所有与 jpg 关联的 .xcf 作为第一层。在尝试使用 python 之后,我一直沉浸在方案解释和其他相关主题中......有人可以帮助我做出这样的命令并理解它吗?

通常,对于每对图像,都是这样的:

image=pdb.gimp_file_load(jpgImage,jpgImage)
layer=pdb.gimp_file_load_layer(image,pngImage)
image.add_layer(layer,0)
pdb.gimp_xcf_save(0,image,layer,outputImage,outputImage)

ofn-coalesce-images 脚本做的事情非常相似(堆叠目录中找到的所有图像)...

为了 运行 无头 Gimp 中的这种东西,考虑一个 .py 将 运行 从某个指定的根目录启动:

def run(directory):
    # Iterates subdirs and creates images

这个 .py 不需要正式成为一个 python 插件(不需要 register() 任何东西)。然后您可以使用以下命令启动它:

Unix-ish:

gimp -idf --batch-interpreter python-fu-eval -b 'import sys; sys.path=["."]+sys.path;import batch;batch.run("/some/path")' -b 'pdb.gimp_quit(1)'

Windows:

gimp -idf --batch-interpreter python-fu-eval -b "import sys;sys.path=['.']+sys.path;import batch;batch.run('/some/path')" -b "pdb.gimp_quit(1)"

(这有点令人费解,因为 Linux 和 Windows 在命令行中处理引号和双引号的方式有些相反)。