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

Get RGB value from screen pixels with python

要从 屏幕 的像素中获取 RGB 值,坐标为 Python,我这样做:

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。

我该如何解决这个问题?

如果你这样做:

import PIL.ImageGrab
PIL.ImageGrab.grab().size

您将看到 python 在您的系统中检测到的分辨率。如果您使用 Windows,您必须转到屏幕配置,然后更改:文本、应用程序和其他元素大小 到 100%。

如果您的分辨率是 1920x1080,如您所说,这应该可以解决问题。

你应该使用 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))