我在尝试将一个带有透明背景的图片复制到另一个具有相同透明背景的图片上,并实现正确的alpha/颜色混合,但是遇到了一些困难。
以下是两个示例图像,red.png和blue.png: 我想将蓝色图片粘贴在红色图片上,并达到这种效果: 该图像是通过在Photoshop中将两个图像简单地组合而成的。
使用Python Imaging Library最接近的效果是: 使用以下代码实现:
以下是两个示例图像,red.png和blue.png: 我想将蓝色图片粘贴在红色图片上,并达到这种效果: 该图像是通过在Photoshop中将两个图像简单地组合而成的。
使用Python Imaging Library最接近的效果是: 使用以下代码实现:
from PIL import Image
blue = Image.open("blue.png")
red = Image.open("red.png")
red.paste(blue, (0,0), blue)
red.save("result.png")
你看到了两个圆重叠时,Alpha值和颜色的不同吗?在预期的结果图像中,红色和蓝色会以紫色混合在一起,但在实际结果图像中存在不必要的Alpha光晕。
我该如何在PIL中实现我的理想效果?
alpha_composite
现在是Pillow 2.0的本地函数。请参见此处。 - lapin