PIL中透明度图片的融合问题(融合处出现白边)

52 阅读1分钟

使用Image().paste()融合透明度图片时,有时会出现白边

图片融合处的白边
image.png

获取到的Alpha通道
image.png

想要解决这个问题,需要使用Image().alpha_composite

from PIL import Image

image_obj.alpha_composite(image_obj2, (0, 0))
# 或者
Image.alpha_composite(image_obj, image_obj2)

性能说明: 在PIL的核心层里,alpha_composite实际上是将两张图片进行融合并返回新的图片,所以性能会有所下降