我试图用半不透明度将图像B粘贴到图像A上(即粘贴的图像是半透明的)。
在枕头的2.1.0版本中,下面的代码起作用了,在3.3.1版本中,它不再工作了:
A = Image.open('A.png')
B = Image.open('B.png')
enhancer = ImageEnhance.Brightness(B)
mask = enhancer.enhance(0.5)
print(mask.getpixel((10,10)), mask.getpixel((30,30)))
mask.save('Mask.png')
A.paste(B, (0,0), mask)
A.save('Result.png')图A是白色背景上的黑色A
图像B是透明背景上的红色'B‘
图片如下所示
版本2.1.0为掩码的像素30、30生成(127,0,0,127)
版本3.3.1为掩码的像素30、30生成(127,0,0,255)
发布于 2016-08-22 18:23:35
枕头是正确的,改变像素的亮度不应该改变它的透明度。很明显在PIL里有个bug。
你真正想要的是把阿尔法从图像B中分离出来,然后把它变成一个面具。使用这个答案的技术
mask = B.split()[-1]
enhancer = ImageEnhance.Brightness(mask)
mask = enhancer.enhance(0.5)https://stackoverflow.com/questions/39084077
复制相似问题