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

时间:2014-07-03 03:26:59

标签: python image python-imaging-library

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

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

imageA.paste(imageB, (0, 0), imageB)

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

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

Example Image

2 个答案:

答案 0 :(得分:1)

我现在无法发表评论(rep约束)。

但我认为根据您的需要,您真正需要的是改为:

imageB.paste(imageA, (0, 0), imageA)

基本上,也就是说,让B成为背景图像以获得所需的结果,因为这是我在D中看到的。

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

我认为你绝对应该使用alpha_composite方法,因为粘贴对于具有透明度的背景图像没有预期效果。

答案 1 :(得分:0)

将RGBA用于透明蒙版

imageA.paste(imageB, (0, 0), imageB.convert('RGBA'))