Python PIL是一个Python Imaging Library,它提供的Image模块具有大量的图像处理API,其中包括alpha_composite()方法。
alpha_composite()方法概述
alpha_composite(im1, im2)方法可以将两张图像合成为一张,可以用于制作半透明的图片,其中im1是底层图像,im2是覆盖在其上面的带有透明度(Alpha)信息的图像。
该方法处理的每一个像素的RGBA值,融合方式是依照im1的alpha值来决定的。这意味着im1的alpha越高,合成后的像素就会更接近im1。而相应的,当im2的alpha值越高时,合成后的像素便会更接近im2。
此方法不改变原始图片。
alpha_composite()方法示例
下面给出2条示例说明alpha_composite()方法的使用。
示例1:利用alpha_composite()方法实现混合两张图片的效果。
from PIL import Image
# 打开底部图像im1
im1 = Image.open('image1.png')
# 打开上层需要混合的图像im2,并将其resize成底部图像的大小
im2 = Image.open('image2.png').resize(im1.size)
# 执行alpha_composite()方法混合两张图像
im_new = Image.alpha_composite(im1, im2)
# 显示合成后的图像
im_new.show()
示例2:利用alpha_composite()方法实现将两张图片轮盘切割并混合的效果。
from PIL import Image, ImageDraw
# 打开底部图像im1
im1 = Image.open('image1.png')
# 创建蒙层图片
mask = Image.new("L", im1.size, 0)
draw = ImageDraw.Draw(mask)
draw.pieslice([0, 0, 100, 100], 0, 90, fill=255)
draw.pieslice([200, 0, 300, 100], 180, 270, fill=255)
# 与底层图像im1取反,生成上层需要混合的图像im2
im2 = Image.composite(im1, Image.new('RGBA', im1.size, (255, 255, 255, 255)), mask)
# 执行alpha_composite()方法混合两张图像
im_new = Image.alpha_composite(im1, im2)
# 显示合成后的图像
im_new.show()
以上便是alpha_composite()方法的详细攻略,希望对您有所帮助。