2014-07-03 82 views
6

我需要使用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?

Example Image

+0

与什么发生了:'imageA.paste(imageB,(0,0),面膜= imageB)' – RickyA

+0

@RickyA这应该是完全一样的:第三个参数到'粘贴'*是面具。尝试使用'imageA'作为掩码,而不是:'imageA.paste(imageB,(0,0),imageA)' – Germano

+0

@Germano:这也行不通,图像B有一个阴影,如果我去做。 – Daniela

回答

0

我不能现在(REP约束)发表评论。

但我觉得你真正需要的,根据您的需要,就是要做到这一点,而不是:

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

基本上,就是让B中的背景图片,以得到想要的结果,因为这是我见D.

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

我想你一定要使用alpha_composite方法,因为糊不活像如预期的背景图像与透明度。

0

使用RGBA透明度掩盖

imageA.paste(imageB, (0, 0), imageB.convert('RGBA')) 
相关问题