您的位置:首页 > 编程语言 > Python开发

使用python处理RGBA格式的透明图片的粘贴

2011-11-11 16:28 633 查看
当需要将一张有透明部分的图片粘贴到一张底片上时,如果用Python处理,可能会用到PIL,但是PIL中 有说明,在粘贴RGBA模式的图片是,alpha通道不会被帖上,也就是不会有透明的效果,当然也给出了解决方法,就是粘贴的时候,将RGBA的的alpha通道提取出来做为mask传入。

im.paste(image, box, mask)

Same as above, but updates only the regions indicated by the mask. You can use either "1", "L" or "RGBA" images (in the latter case, the alpha band is used as mask). Where the mask is 255, the given image is copied as is. Where the mask is 0, the current
value is preserved. Intermediate values can be used for transparency effects.

Note that if you paste an "RGBA" image, the alpha band is ignored. You can work around this by using the same image as both source image and mask.

代码如下:

#读取底片

imp = Image.open('20111110_170002.jpg')

#读取要粘贴的图片 RGBA模式

imq = Image.open('attachment.png')

#分离通道

r,g,b,a = imq.split()

#粘贴

imp.paste(imq,(100, 100, 171, 172),mask = a)

显示:

imp.show()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: