4
我遇到问题,通过GIMP将图像保存在python中。我可以得到图像并应用我想要的效果,但是当我去保存时,它只保存一层而不是一切(注意:背景是透明的),并且因为背景是透明的,所以我不能保存它透明的背景。我使用的代码下面贴:GIMP Python-fu导出文件只导出透明图层
image_array = gimp.image_list()
i=0
for image in image_array:
img = image_array[i]
layers = img.layers
last_layer = len(layers)-1
try:
disable=pdb.gimp_image_undo_disable(img)
pdb.gimp_layer_add_alpha(layers[0])
drw = pdb.gimp_image_active_drawable(img)
pdb.plug_in_colortoalpha(img,drw,(0,0,0))
drw = pdb.gimp_image_active_drawable(img)
enable = pdb.gimp_image_undo_enable(img)
except:
print "ERROR"
pdb.file_png_save(img, drw, "C:\\Users\\jammer\\Desktop\\test.png",
"test.png",0,9,1,1,1,1,1)
i+=1
我也曾尝试file_png_save2
,但我有一种感觉,问题就出在DRW对象我只是想复制一下文件 - >导出的选项并保存为PNG,而不通过GUI进行。我宁愿让它自动保存(我有49个图像,每个会自动命名,但首先我需要得到它与一个图像正确导出)。正如我之前所说的,上面的代码只导出了一个透明背景,即使更改为GIF也不能解决问题。如何在保留所有图层和透明背景的同时将文件作为PNG导出?
合并所有图层是做到这一点 - 但你只需要在情况下,如在你的,在图像是“一次性” - 合并图层后有不会返回(GIMP中没有呼叫“撤消”)。通常的方法是调用'pdb.gimp_image_duplicate',并在副本中执行图层合并。 – jsbueno 2013-03-19 03:57:52