我需要使用Python的PIL库将一张图片混合到另一张图片上。
如下图所示,我的两个源图片是A和B。 当我执行以下操作时:
imageA.paste(imageB, (0, 0), imageB)
我的结果是C,但灰色背景顶部的部分现在是透明的。图像D是我在Photoshop中将B叠加在A上得到的结果,也是我需要PIL实现的结果。
我做错了什么?如何在PIL中将B叠加在A上,以获得D而不是C?
我需要使用Python的PIL库将一张图片混合到另一张图片上。
如下图所示,我的两个源图片是A和B。 当我执行以下操作时:
imageA.paste(imageB, (0, 0), imageB)
我的结果是C,但灰色背景顶部的部分现在是透明的。图像D是我在Photoshop中将B叠加在A上得到的结果,也是我需要PIL实现的结果。
我做错了什么?如何在PIL中将B叠加在A上,以获得D而不是C?
使用RGBA进行透明度掩码
imageA.paste(imageB, (0, 0), imageB.convert('RGBA'))
目前我无法发表评论(限制回复)。
但是根据您的需求,我认为您真正需要做的是:
imageB.paste(imageA, (0, 0), imageA)
imageA.paste(imageB, (0, 0), mask=imageB)
会发生什么? - RickyA