python 张图片中的深黄色(255,255,0)替换成(255,204,0)。使用到pillow库 方法收集
from PIL import Image img = Image.open("logo.png") for i in range(2048): for j in range(2048): try: r,g,b,alpha = img.getpixel((i,j)) if r==255 and g==255 and b==0: g=204 img.putpixel((i,j), (r,g,b,alpha)) except Exception as e: continue img.show()
搜索到的结果里不包含alpha
,运行有问题,print出来发现有四个值,看到自己一起写的代码里第四个叫alpha
,是通道
,这里用不到。
刚开始运行后底色一直由白色到粉红色…费解,遂看了白色的RGB值(255,255,255)因此需要多加个判断:and b==0
即可。
一定要加上try语句,因为不是所有的img.getpixel((i,j))
都返回4个值,比如我的例子中白色只有3个值。
重要信息 实际上我有两张基本一样的图片(下图):一张的黄色是(255,255,0),另一张的黄色是(255,204,0)+(255,255,0)这个我手动画了一部分颜色上去。实际运行程序的时候只有第二个成功替换掉了颜色,第一张尝试几次都不行