Python PIL.Image一些应用

设置图片整体透明度

from PIL import Image

img = Image.open("./assets/back12.jpg")
img = img.convert('RGBA') # 修改颜色通道为RGBA
x, y = img.size # 获得长和宽

# 设置每个像素点颜色的透明度
for i in range(x):
    for k in range(y):
        color = img.getpixel((i, k))
        color = color[:-1] + (100, )
        img.putpixel((i, k), color)

img.save("./assets/back12.png") # 要保存为.PNG格式的图片才可以

重点讲一下这段代码:color = color[:-1] + (100, )
因为获取到的color是(r, g, b, 255)这是一个元组,[:-1]是切片,代表获取前3个元素,就是(r, g, b),然后再加个(100, )这是包含一个数元组的写法。加起来就是(r, g, b, 100)达到修改透明度的效果。

背景变为透明

import PIL.Image as Image
def transparent_back(img):
    img = img.convert('RGBA')    #转化成4个通道,RGB加上透明度的通道
    L, H = img.size
    color_0 = img.getpixel((0,0))
    for h in range(H):
        for l in range(L):
            dot = (l,h)
            color_1 = img.getpixel(dot)
            if color_0[0]-20< color_1[0] and color_1[0]<color_0[0]+20:#与左上角第一个像素点第一个通道值相差20以内的,透明度都设置为0。20这个阈值可以根据图片效果修改。
                color_1 = color_1[:-1] + (0,)
                img.putpixel(dot,color_1)
    return img

if __name__ == '__main__':
    img=Image.open('./assets/logo.png')
    img=transparent_back(img)
    img.save('./assets/logo2.png')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值