我正在尝试在jpeg图像上添加透明叠加层。在下面的示例中,所需的结果将是带有淡红色的红色切片的红色图像。
我输入的是jpeg图像。由于jpeg没有alpha通道,所以我可以将其转换为'RGBA'图像,然后将覆盖层粘贴到上面:
from PIL import Image, ImageDraw
# img = Image.open('input.jpg').convert('RGBA')
img = Image.new('RGBA', (400,400), (255,0,0))
img2 = Image.new('RGBA', (400,400))
draw2 = ImageDraw.Draw(img2)
draw2.pieslice([0,0,400,400], 90, 180, fill='white')
img.putalpha(128)
img.save('img.png')
img2.save('img2.png')
img.paste(img2)
img.save('img1+2.png')
但是,这并没有达到预期的效果,Windows Photos甚至无法正确打开它。
我看到了blend
和alpha_composite
函数,但是对我来说没有理想的效果。我不想降低叠加层背景的alpha值。