加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读