用 python 图片把白色转成透明

梦康 2023-06-20 20:53:01 293

在 Python 中,可以使用 Pillow 库来读取、处理图片。具体来说,可以使用 Image.open() 方法打开图片文件,然后使用 Image.convert() 方法将其转换为带有 Alpha 通道的图片,最后使用 Image.putdata() 方法替换图片中的白色像素为透明像素。

from PIL import Image

# 打开图片文件
img = Image.open('example.png')

# 将图片转换为带 Alpha 通道的模式
img = img.convert('RGBA')

# 将所有白色像素替换为透明像素
data = img.getdata()
new_data = []
for pixel in data:
    if pixel[0] == 255 and pixel[1] == 255 and pixel[2] == 255:
        new_data.append((255, 255, 255, 0))
    else:
        new_data.append(pixel)
img.putdata(new_data)

# 保存处理后的图片
img.save('example_transparent.png')

在上面的代码中,首先使用 Image.open() 方法打开了一个名为 example.png 的图片文件,然后使用 convert() 方法将其转换为带有 Alpha 通道的模式。接着,使用 getdata() 方法获取图片的所有像素数据,并遍历这些像素,将所有白色像素替换为透明像素。最后,使用 putdata() 方法将处理后的像素数据写回到图片中,并使用 save() 方法保存处理后的图片到文件中。

需要注意的是,上述代码假定白色像素的 RGB 值为 (255, 255, 255)。如果图片中的白色像素 RGB 值不是这个,那么需要相应地修改判断条件。