我一直试图检查屏幕上的像素是否在变化。我需要做什么?
我上网已经很长时间没有成功。我已经尝试了网上给出的代码,发现我的代码只是从代码运行时打开的屏幕上提供数据。也就是说,如果在运行代码时屏幕是白色的,它将从白色屏幕读取像素,即使屏幕颜色已经改变。
from PIL import ImageGrab
px=ImageGrab.grab().load()
m=px[613,296]
print(m)
while 1:
if m!=px[613,296]:
m=px[613,296]
print(m)
我运行代码并启动了一个视频,我预计值会不断变化,但我得到的是(255,255,255)(空闲的白屏)我也尝试手动更改屏幕。
我尝试在没有控制台的情况下运行代码并在文本文件中打印没有while循环的输出,我得到了正确的值。但是我需要完成的任务需要多次运行代码以检查像素是否更新。我该怎么做到这一点?
这对我有用:
#!/usr/bin/env python3
from PIL import ImageGrab
while True:
px=ImageGrab.grab().load()
m=px[613,296]
print(m)
我认为如果你只是通过指定这样的边界框来抓住一个像素会更快,所以你只抓住一个像素:
#!/usr/bin/env python3
from PIL import ImageGrab
while True:
screen=ImageGrab.grab(bbox=(613,296,614,297))
px = screen.load()
m=px[0,0]
print(m,screen.size)