我有几个PNG图像,我需要将它们组合成一个新的GIMP XCF图像中的单个图层。我需要多次执行此任务,因此基于脚本的解决方案最好。
到目前为止,我试图使用GIMP的批处理模式,但失败了。
答案 0 :(得分:3)
而不是使用Scheme的script-fu,我建议使用GIMP-Python绑定,因为操作文件和列表要容易得多。
如果您检查filters->Python->Console
,您将进入交互模式 - 在其底部,会出现一个“浏览”按钮,您可以在其API中选择任何GIMP程序并将其直接粘贴到这个控制台。
有一个API调用“将文件作为图层加载” - pdb.gimp_file_load_layer
-
pdb.gimp_image_insert_layer
您可以直接在交互式控制台中键入此内容,或者,检查我的其他GIMP相关答案之一,或者在Web上使用GIMP-Python上的某些资源将其转换为插件,这不需要粘贴每次要执行任务时都会显示以下代码:
def open_images_as_layers(img, image_file_list):
for image_name in image_file_list:
layer = pdb.gimp_file_load_layer(image_name)
pdb.gimp_image_insert_layer(img, layer, None, 0)
img = gimp.image_list()[0]
image_list = "temp1.png temp2.png temp3.png"
open_images_as_layers(img, image_list.split())
倒数第二行img = ...
选择对打开图像的必要引用
在GIMP中 - 如果您愿意,还可以使用pdb调用创建新图像
(例子如下)。
文件列表是上面代码段中的硬编码空格分隔字符串,
但您可以使用Python允许的任何方式创建文件列表。
例如,要获取所有“.png”文件名
c:\Documents and Settings\My user\Pictures
文件夹,你可以这样做:
from glob import glob
image_list = glob("c:/Documents and Settings/My user/Pictures/*png")
以编程方式创建图像:
img = gimp.Image(1024, 768)
pdb.gimp_display_new(img)