python – PIL使用eval函数检查它所在的像素
发布时间:2020-12-20 12:26:39 所属栏目:Python 来源:网络整理
导读:有没有办法在PIL中使用eval函数来遍历所有像素,同时检查每个值是什么?程序通过一个图像来查看每个像素是否是某个rgb,如果是,则它会将该像素转换为透明度. PIL中的eval函数似乎可以完成这项工作,但是我的转换像素的函数可以检查它所在像素的值吗?提前致谢.
有没有办法在PIL中使用eval函数来遍历所有像素,同时检查每个值是什么?程序通过一个图像来查看每个像素是否是某个rgb,如果是,则它会将该像素转换为透明度. PIL中的eval函数似乎可以完成这项工作,但是我的转换像素的函数可以检查它所在像素的值吗?提前致谢.
解决方法
更新:啊,我明白你想做什么.这是仅使用PIL的示例.它将所有白色像素转换为红色且50%alpha:
import Image img = Image.open('stack.png').convert('RGBA') width,_ = img.size for i,px in enumerate(img.getdata()): if px[:3] == (255,255,255): y = i / width x = i % width img.putpixel((x,y),(255,127)) img.save('stack-red.png') 原始答案:是的,Image.eval()函数允许您传入一个评估每个像素的函数,并让您确定一个新的像素值: import Image img1 = Image.open('foo.png') # replace dark pixels with black img2 = Image.eval(img1,lambda px: 0 if px <= 64 else px) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |