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

5
为了在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个回答

5

如果你这样做:

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

您将看到Python在您的系统中检测到的分辨率。如果您使用的是Windows操作系统,则需要进入屏幕配置并更改文本,应用程序和其他元素的大小为100%。

如果您的分辨率是1920x1080,就像您所说的那样,这个方法应该可以解决问题。


1
很棒的解决方案 :) - user7065967

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接