Python PIL:将透明图像混合到另一个上

Dan*_*ela 7 python image python-imaging-library

我需要使用Pythons PIL Library将图像混合到另一个图像上.

如下图所示,我的两个源图像是A和B.当我这样做时:

imageA.paste(imageB, (0, 0), imageB)
Run Code Online (Sandbox Code Playgroud)

我得到了C作为结果,但灰色背景顶部的部分现在是透明的.图像D是我在Photoshop中将B放在A上时得到的,是我需要用PIL实现的.

我究竟做错了什么?如何在PIL中用A组合B来获得D而不是C?

示例图像

bad*_*nts 1

我现在无法发表评论(代表限制)。

但我认为根据您的需要,您真正需要的是这样做:

imageB.paste(imageA, (0, 0), imageA)
Run Code Online (Sandbox Code Playgroud)

基本上,就是让B作为背景图像以获得想要的结果,因为这就是我在D中看到的。

编辑:环顾四周,我发现了这个: https ://stackoverflow.com/a/15919897/4029893

我认为您绝对应该使用该alpha_composite方法,因为对于具有透明度的背景图像,粘贴不能按预期工作。