使用 Pillow (Python) 尊重透明度将另一张图片粘贴到一张图片中

Paste another image into an image with with Pillow (Python) respecting transparency

我有两张 320x320 像素的 png 图片,我需要用 Python 将一张粘贴到另一张上方(没有颜色的部分是透明的):

当我用 GIMP 手动执行(复制+粘贴)时,它给了我想要的输出:

但是,当使用 Pillow 将一个粘贴到另一个上面时,我得到了一个红色圆圈的图像,好像没有透明度:

from PIL import Image

im1 = Image.open("square.png")
im2 = Image.open("circle.png")

im1.paste(im2)
im1

我做错了什么?

from PIL import Image

im1 = Image.open("square.png")
im2 = Image.open("circle.png")

im2 粘贴到 im1 上

Image.Image.paste(im1,im2,mask=im2)

im1.show()

这里可以指定image为mask as im2

或者你可以直接使用

im1.paste(im2,mask=im2)