python PIL 给图片添加一个半透明的效果

注意:因为mask背景是透明的,图案是半透明的,所以需要转成’RGBA’模式,如果不转模式会报错;但是!!!在存储图片的时候要转回’RGB’格式

from PIL import Image, ImageDraw

bg_img =Image.open('./Morning.png').convert('RGBA')
# bg_img = Image.new("RGBA", (256, 256), (0, 0, 255, 255))
def drawRect(img, pos, **kwargs):
    transp = Image.new('RGBA', img.size, (0,0,0,0))
    draw = ImageDraw.Draw(transp, "RGBA")
    draw.rectangle(pos, **kwargs)
    img.paste(Image.alpha_composite(img, transp))

drawRect(bg_img, (0,155,875,435), fill=(255,255,255,150))
bg_img.show()
bg_img.convert('RGB')
bg_img.save("Morning.png")

这是原图👇
image
效果如下:
image

posted @ 2022-01-31 03:57  NPC_P  阅读(1716)  评论(0)    收藏  举报