如何在 python Pillow 中合并 2 个透明 png

How to merge 2 transparent png's in python Pillow

我有 2 个相同大小 (142,43) 的透明 PNG 图片。我试图垂直堆叠它们。这是其中之一:

最终结果应该是这样的(142,86):

它还应该保持其透明度。

我试过以下代码:

from PIL import Image

img_list = [Image.open("example.png"), Image.open("example.png")]
bg = Image.open("1x1_transparent.png")

bg = bg.resize(size=(142, 43*2))
img_list[0] = img_list[0].convert('RGBA')

bg.paste(img_list[0], (0, 0), img_list[0])

bg.save('final.png')

导入 1x1 透明图像,将其调整为最终目标大小,然后尝试将第一个图像放在上面。这是行不通的。保存的图像 'final.png' 显示空图像。

有没有想过我会做错什么?

如果您的输出看起来大小不正确,可能是因为这一行:

bg.resize(size=(142, 43*2))

resize returns 图像的新版本,原始图像保持不变。尝试将返回值分配给某些东西,以便您可以对其进行其他操作并最终保存输出。

bg = bg.resize(size=(142, 43*2))