gpt4 book ai didi

python - 如何使用 PIL 使所有白色像素透明?

转载 作者:IT老高 更新时间:2023-10-28 20:30:26 29 4
gpt4 key购买 nike

我正在尝试使用 Python 图像库使所有白色像素透明。 (我是一名 C 黑客,试图学习 python,所以要温柔)我已经进行了转换(至少像素值看起来正确),但我不知道如何将列表转换为缓冲区以重新创建图像。这是代码

img = Image.open('img.png')
imga = img.convert("RGBA")
datas = imga.getdata()

newData = list()
for item in datas:
if item[0] == 255 and item[1] == 255 and item[2] == 255:
newData.append([255, 255, 255, 0])
else:
newData.append(item)

imgb = Image.frombuffer("RGBA", imga.size, newData, "raw", "RGBA", 0, 1)
imgb.save("img2.png", "PNG")

最佳答案

您需要进行以下更改:

  • 附加一个元组 (255, 255, 255, 0) 而不是一个列表 [255, 255, 255, 0]
  • 使用 img.putdata(newData)

这是工作代码:

from PIL import Image

img = Image.open('img.png')
img = img.convert("RGBA")
datas = img.getdata()

newData = []
for item in datas:
if item[0] == 255 and item[1] == 255 and item[2] == 255:
newData.append((255, 255, 255, 0))
else:
newData.append(item)

img.putdata(newData)
img.save("img2.png", "PNG")

关于python - 如何使用 PIL 使所有白色像素透明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/765736/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com