使用PIL从任何图像中删除透明度/ alpha
发布时间:2020-05-25 06:04:02 所属栏目:Python 来源:互联网
导读:如何用指定的背景颜色替换任何图像(png,jpg,rgb,rbga)的alpha通道?它还必须适用于没有Alpha通道的图像. 这可以通过检查图像是否透明来完成 def remove_transparency(im, bg_colour=(255, 255, 255)): # Only process if image has transparency (https://sta
|
如何用指定的背景颜色替换任何图像(png,jpg,rgb,rbga)的alpha通道?它还必须适用于没有Alpha通道的图像. 解决方法这可以通过检查图像是否透明来完成def remove_transparency(im,bg_colour=(255,255,255)):
# Only process if image has transparency (https://stackoverflow.com/a/1963146)
if im.mode in ('RGBA','LA') or (im.mode == 'P' and 'transparency' in im.info):
# Need to convert to RGBA if LA format due to a bug in PIL (https://stackoverflow.com/a/1963146)
alpha = im.convert('RGBA').split()[-1]
# Create a new background image of our matt color.
# Must be RGBA because paste requires both images have the same format
# (https://stackoverflow.com/a/8720632 and https://stackoverflow.com/a/9459208)
bg = Image.new("RGBA",im.size,bg_colour + (255,))
bg.paste(im,mask=alpha)
return bg
else:
return im (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
