用Python创建透明的png图片 – pillow
为了用Python3创建一个透明的png,使用了Pillow库。Pillow库是Python本身自带的。如果Python不能找到Pillow库,那么打开命令提示符并运行以下命令:-
pip install Pillow
注意:如果你在安装Pillow时遇到任何问题,请先安装和设置Pip。关于这一点,请查看这篇文章。
步骤:
1 (从Pillow库中导入图像模块)
from PIL import Image
2.打开任何图像并获得RAGBAG值.
img = Image.open(‘image.png’)
rgba = img.convert(“RGBA”)
datas = rgba.getdata()
3.改变颜色
数据将是一个包含数千个RGBA值图元的Imaging Core对象。要使背景透明,首先我们必须找到背景的RGBA值或我们想使之透明的任何颜色。在这张图片中,背景颜色是黑色。
黑色的RGB值是(0,0,0)。现在我们将循环浏览数据(RGBA值),每当我们发现一个黑色像素,我们将用一个透明的RGBA值来替换它,这个值是((255, 255, 255, 0),其他颜色将保持不变。我们将把这些值存储在一个新的列表中,称为newData。
newData = []
for item in datas:
if item[0] == 0 and item[1] == 0 and item[2] == 0:
newData.append((255, 255, 255, 0))
else:
newData.append(item)
4.存储更改后的图像。
将newData存储为RGBA值,并将图像保存为png格式(透明图像不能存储为jpg或jpeg格式)。
rgba.putdata(newData)
rgba.save(“transparent_image.png”, “PNG”)
实现:
from PIL import Image
img = Image.open('image.png')
rgba = img.convert("RGBA")
datas = rgba.getdata()
newData = []
for item in datas:
if item[0] == 0 and item[1] == 0 and item[2] == 0: # finding black colour by its RGB value
# storing a transparent value when we find a black colour
newData.append((255, 255, 255, 0))
else:
newData.append(item) # other colours remain unchanged
rgba.putdata(newData)
rgba.save("transparent_image.png", "PNG")
输出:
现在,在同一图像中,如果我们想使黄色透明,我们需要使黄色像素透明。为此,我们必须通过RBG值(255, 255, 0)找到黄色,然后用(255, 255, 255, 0)替换它。
新的代码看起来像这样 –
from PIL import Image
img = Image.open('image.png')
rgba = img.convert("RGBA")
datas = rgba.getdata()
newData = []
for item in datas:
if item[0] == 255 and item[1] == 255 and item[2] == 0: # finding yellow colour
# replacing it with a transparent value
newData.append((255, 255, 255, 0))
else:
newData.append(item)
rgba.putdata(newData)
rgba.save("transparent_image.png", "PNG")
输出:
在这里,我们让黄色变得透明。