我需要使用Pythons PIL库将图像混合到另一个图像上。Python PIL:将透明图像混合到另一个
正如你可以在下面的图片中看到,我的两个源图像是A和B. 当我这样做:
imageA.paste(imageB, (0, 0), imageB)
我得到C作为一个结果,但在灰色的顶部部分背景现在是透明的。 Image D是我在Photoshop中将B放在A上时得到的,也是我需要用PIL实现的。
我在做什么错?我如何在PIL中编写B over A以获得D而不是C?
我需要使用Pythons PIL库将图像混合到另一个图像上。Python PIL:将透明图像混合到另一个
正如你可以在下面的图片中看到,我的两个源图像是A和B. 当我这样做:
imageA.paste(imageB, (0, 0), imageB)
我得到C作为一个结果,但在灰色的顶部部分背景现在是透明的。 Image D是我在Photoshop中将B放在A上时得到的,也是我需要用PIL实现的。
我在做什么错?我如何在PIL中编写B over A以获得D而不是C?
我不能现在(REP约束)发表评论。
但我觉得你真正需要的,根据您的需要,就是要做到这一点,而不是:
imageB.paste(imageA, (0, 0), imageA)
基本上,就是让B中的背景图片,以得到想要的结果,因为这是我见D.
编辑: 环顾四周多了,我发现这一点: https://stackoverflow.com/a/15919897/4029893
我想你一定要使用alpha_composite
方法,因为糊不活像如预期的背景图像与透明度。
使用RGBA透明度掩盖
imageA.paste(imageB, (0, 0), imageB.convert('RGBA'))
与什么发生了:'imageA.paste(imageB,(0,0),面膜= imageB)' – RickyA
@RickyA这应该是完全一样的:第三个参数到'粘贴'*是面具。尝试使用'imageA'作为掩码,而不是:'imageA.paste(imageB,(0,0),imageA)' – Germano
@Germano:这也行不通,图像B有一个阴影,如果我去做。 – Daniela