我需要使用Pythons PIL Library将图像混合到另一个图像上。
如下图所示,我的两张源图像是A和B. 当我这样做时:
imageA.paste(imageB, (0, 0), imageB)
我得到C作为结果,但灰色背景顶部的部分现在是透明的。图像D是我在Photoshop中将B放在A上时得到的,是我需要用PIL实现的。
我做错了什么?如何在PIL中用A组合B来获得D而不是C?
答案 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'))