首页 > 解决方案 > 实时获取特定像素的 RGB 值

问题描述

如何使用 python 实时获取屏幕上像素的 RGB 值?我试过使用

from PIL import ImageGrab as ig
while(True):
    screen = ig.grab() 
    g = (screen.getpixel((358, 402))) 
    print(g)

获得价值,但有明显的滞后。

有没有另一种方法可以在没有屏幕捕获的情况下做到这一点?因为我认为这是滞后的原因。有没有办法大大加快这个过程?

是否可以将 ig.grab() 限制为 358、402 并从那里获取值?

标签: python

解决方案


以下更改将加速 15%

pixel = (358, 402)
pixel_boundary = (pixel + (pixel[0]+1, pixel[1]+1))
g = ig.grab(pixel_boundary)
return g.getpixel((0,0))

运行:

  • 建议:每个循环 383 毫秒 ± 5.1 毫秒(平均值 ± 标准偏差。7 次运行,每个循环 1 个)

  • 原始:每个循环 450 毫秒 ± 5.31 毫秒(平均值 ± 标准偏差。7 次运行,每个循环 1 个)


推荐阅读