如何让图片透明

楼主
我是社区第713489位番薯,欢迎点我头像关注我哦~

import sys

sys.path.append(r"PAK路径")

 

 

# -*- coding: utf-8 -*-

from PIL import Image

 

def trans_PNG(initial_pic, new_pic):

    '''

    to get a transparent picture

    :param initial_pic: initial picture's path

    :param new_pic: the transparent picture's path

    :return:

    '''

    img = Image.open(initial_pic)

    #将图片转换为四通道,而第四个通道是我们要修改的透明度,

    #值可以设置成0-255之间的值,透明度会不太一样,看脑洞有多大咯。

    img = img.convert("RGBA")

    x, y = img.size

 

    for i in range(x):

        for j in range(y):

                #取四个通道的值,然后用切片取前三个不变,最后一个改为240

            color = img.getpixel((i, j))

            color = color[:-1] + (240,)

            img.putpixel((i, j), color)

 

        #将白色及近似白色的地方改成半透明

        datas = img.getdata()

        new_data = list()

        for item in datas:

            if item[0] > 220 and item[1] > 220 and item[2] > 220:

                new_data.append((255, 255, 255, 0))

            else:

                new_data.append(item)

        img.putdata(new_data)

        img.save(new_pic, "PNG")

 

if __name__ == '__main__':

 

    trans_PNG(r'H:\AA\w22.PNG', r'H:\AA\w221.PNG')

    print('End')

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 1关注人数 1300浏览人数
最后回复于:2023-4-21 16:45

返回顶部 返回列表