Подтвердить что ты не робот

Прозрачный PNG в PIL оказывается не прозрачным

Я некоторое время ударяю головой о стену, так что, возможно, кто-то там может помочь.

Я использую PIL, чтобы открыть PNG с прозрачным фоном и некоторыми случайными черными надписями, и попытаться поместить его поверх другого PNG (без прозрачности), а затем сохранить его в третий файл.

В конце появляется весь черный, что раздражает, потому что я не сказал, что он черный.

Я тестировал это с помощью нескольких предложенных исправлений из других сообщений. Изображение открывается в формате RGBA, и оно все еще испортилось.

Кроме того, эта программа должна иметь дело со всеми видами файловых форматов, поэтому я использую PIL. Иронично, что первый формат, который я пробовал, все вяло.

Любая помощь будет оценена по достоинству. Здесь код:

from PIL import Image
img = Image.open(basefile)
layer = Image.open(layerfile) # this file is the transparent one
print layer.mode # RGBA
img.paste(layer, (xoff, yoff)) # xoff and yoff are 0 in my tests
img.save(outfile)
4b9b3361

Ответ 1

Я думаю, что вы хотите использовать аргумент маски маски. см. документы (прокрутите вниз до paste)

from PIL import Image
img = Image.open(basefile)
layer = Image.open(layerfile) # this file is the transparent one
print layer.mode # RGBA
img.paste(layer, (xoff, yoff), mask=layer) 
# the transparancy layer will be used as the mask
img.save(outfile)