PIL中的透明PNG变得不透明了
我最近一直在为这个问题烦恼,希望能有人帮帮我。
我在用PIL这个库打开一个透明背景的PNG图片,上面有一些随意的黑色涂鸦,然后想把它放到另一个没有透明背景的PNG上,最后保存成第三个文件。
结果出来的图片全是黑色,这让我很烦,因为我并没有要求它变成黑色。
我试过很多其他帖子里提到的解决办法。图片是以RGBA格式打开的,但还是出现问题。
而且,这个程序本来是要处理各种文件格式的,所以我才用PIL。讽刺的是,我尝试的第一个格式就出问题了。
任何帮助都会很感激。以下是代码:
from PIL import Image
img = Image.open(basefile)
layer = Image.open(layerfile) # this file is the transparent one
print layer.mode # RGBA
img.paste(layer, (xoff, yoff)) # xoff and yoff are 0 in my tests
img.save(outfile)
1 个回答
55
我觉得你想用的是粘贴遮罩这个参数。可以查看一下文档,往下滚动到paste
那部分。
from PIL import Image
img = Image.open(basefile)
layer = Image.open(layerfile) # this file is the transparent one
print layer.mode # RGBA
img.paste(layer, (xoff, yoff), mask=layer)
# the transparancy layer will be used as the mask
img.save(outfile)