我正在使用多个图像,我希望将它们叠加在一起以创建单个图像。但是,在使用它们时,我注意到如果图像已经具有透明度(alpha!= 255),则图像的这一部分显得褪色。如果没有透明度,一切都很好。
我将我正在使用的其中一个图像保存到PNG中,并创建了一小段代码来复制问题。基本上,我正在创建一个具有透明背景的新图像,然后将图像粘贴在顶部:
from PIL import Image
img=Image.new('RGBA', (946,627), (0,0,0,0))
overlayImage = Image.open('drawing.png')
img.paste(overlayImage, (0,0), overlayImage)
img.save('drawing-pasted.png')
完成后,drawing-pasted.png如下所示:
但是原始绘图(drawing.png)看起来像这样:
(手动裁剪图像以显示细节。)原始图像圆圈填充颜色的alpha值为179.
有没有其他人遇到过这个,我做错了什么?
非常感谢。
答案 0 :(得分:0)
你正在创建的背景是黑色和完全透明,原始是蓝色但是alpha为179,所以你有2个像素(0,0,0,0)和(0,0,255,179)假设100%蓝色 - 因为你粘贴图像将是超过背景所以将使用新图像的alpha允许(255-179)/ 255或约30%黑色。 (N.B。背景的alpha没有区别,因为它在新图像的后面)
您可以使用overlayImage.putalpha
将alpha设置为从图像开始而不是黑色背景。