使用python从屏幕像素获取RGB值

时间:2017-03-06 22:38:47

标签: python-3.x python-imaging-library rgb pixel

要在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。

我该如何解决这个问题?

2 个答案:

答案 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))