如何使用 PyAutoGUI 检测 RGB 值

How to use PyAutoGUI to detect RGB values

我正在尝试构建一个仅点击特定颜色的小型机器人。我相信 pyautogui.displayMousePosition() 应该显示鼠标的位置以及鼠标所在像素的 RGB 值。相反,我只看到位置值(如屏幕截图所示)。这可能是 MacOS 的问题吗?

No RGB values being displayed on python console - screenshot

我也很想知道是否有其他方法可以解决这个问题。

displayMousePosition() 是错误的函数,除了验证库是否正常运行外,几乎可以用于任何其他事情。它没有 return 任何值,它所做的只是将信息打印到控制台。我强烈建议浏览 pyautogui's documentation 以了解有关库提供的功能的更多信息。

假设您知道屏幕的 x 和 y 坐标,您想要获取屏幕的颜色,您需要截取屏幕截图并检查适当位置的颜色值。

im = pyautogui.screenshot()
px = im.getpixel((x, y))

有一个包装器可以让您从您也可以使用的坐标对中获取像素信息。

px = pyautogui.pixel((x, y))

不知道为什么,但我在 Reddit 上发现了这个:

确保在 .py 文件中包含此代码:

import sys 
sys.platform = '_'

它对我来说非常有效:
Python3.9.1
PyAutoGUI==0.9.52
MacOS 11.2.3 (20D91)

检查鼠标点像素的代码如下:

import pyautogui
import time

while 1:
    x, y = pyautogui.position()
    r,g,b = pyautogui.pixel(x, y)
    print(r,g,b)
    #time.sleep(0.1)