要在Python中使用坐标(x,y)从屏幕的像素获取RGB值,我会这样做:
import PIL.ImageGrab
rgb = PIL.ImageGrab.grab().load()[x,y]
我的工作正如我预期的那样:
rgb = PIL.ImageGrab.grab().load()[1673,0]
而不是像素的RGB值,我收到了:
IndexError: image index out of range
我不明白为什么,因为我的屏幕分辨率为1920x1080。
我该如何解决这个问题?
答案 0 :(得分:3)
如果你这样做:
import PIL.ImageGrab
PIL.ImageGrab.grab().size
您将看到python在您的系统中检测到的分辨率。如果您使用的是Windows,则必须转到“屏幕配置”,然后将:文本,应用程序和其他元素大小更改为100%。
如果您的分辨率为1920x1080,正如您所说,这应该可以解决问题。
答案 1 :(得分:0)
你应该使用 pyscreeze 模块
import pyscreeze
#the value of pixel whose value is to be get
x=23
y=23
#screen object
screen=pyscreeze.screenshot()
rgb_values=screen.getpixel((x,y))