📅  最后修改于: 2023-12-03 15:04:07.515000             🧑  作者: Mango
PIL(Python Imaging Library)是Python编程语言中的图像处理库,提供了支持图片裁剪、旋转、缩放、合并等功能。其中,复合方法(composite)可以用于将两张图片合成一张。
复合方法(composite)可以在图像上覆盖另一张图像。通常情况下,将前景图像overlay置于背景图像base上。
base_image = Image.open('base.jpg')
overlay_image = Image.open('overlay.png')
# 获取overlay的alpha信息
if overlay_image.mode != 'RGBA':
overlay_image = overlay_image.convert('RGBA')
overlay_alpha = overlay_image.split()[-1]
# 创建一个ImageComposite对象
composite = ImageComposite.Composite()
# 将overlay图像放置在左上角
composite.compose(overlay_image, (0, 0), overlay_alpha)
# 合成图像
result = composite.composite(base_image)
# 保存结果
result.save('result.jpg')
上述代码中,我们首先打开了 base.jpg 和 overlay.png 两张图片,然后获取了overlay图像的alpha信息。接着,我们创建了一个ImageComposite对象,将overlay图像放置在左上角,再将它与base图像合成。最后,我们将合成结果保存为 result.jpg 文件。
复合方法(composite)有4个参数:
可以在一个ImageComposite对象上面多次调用复合方法,传入不同的img参数,实现多个图像的合成。
composite = ImageComposite.Composite()
result = composite.compose(img1, (x1, y1), mask1, scale1) \
.compose(img2, (x2, y2), mask2, scale2) \
.compose(img3, (x3, y3), mask3, scale3) \
.composite(base)