У меня проблемы с сохранением изображений в python через GIMP. Я могу получить изображение и применить эффекты, которые хочу, но когда я иду на сохранение, он сохраняет только один слой и не все (ПРИМЕЧАНИЕ: фон прозрачный), и поскольку фон прозрачен, я не могу заставить его ничего не сохранять прозрачный фон. Код, я использую размещена ниже: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