python - 有没有一种方法可以检测某个像素的 RGB 值并在 if 条件下使用它?

标签 python pyautogui

我正在尝试编写一个脚本来自动化工作中的无聊工作。为此,我使用“pyautogui”并且大部分脚本已完成。顺便说一下,操作系统是 Windows。

我的问题是,我目前正在使用 time.sleep() 命令让脚本在流程的每个步骤之间工作,但最好检测某个像素的 RGB 值。

我目前的做法是这样的;

pyautogui.click(req_management_find[0],req_management_find[1])    
time.sleep(2)
pyautogui.click(req_management_print[0],req_management_print[1])
while True:
         time.sleep(0.5)
         pix=pyautogui.pixel(1348,131)
         if pix[1] == 27 and pix[2] == 161 and pix[3] == 226:
           break
         else:
                 time.sleep(0.5)

pyautogui.click(req_print_close[0],req_print_close[1])

这只是永远等待,而不是跳出 while 循环。我已经使用 pyautogui.displayMousePosition() 读取了像素的 RGB 值。它通常是 (255, 255, 255)。在不确定的时间后,我尝试编写脚本的程序会弹出一个窗口,将像素的 RGB 从 (255, 255, 255) 更改为 (27, 161, 226)。

为什么我的代码没有检测到这个变化?

最佳答案

索引从 0 开始,所以它是:

if pix[0] == 27 and pix[1] == 161 and pix[2] == 226:

或者您可以使用以下方式使其更明确:

if pix.red == 27 and pix.green == 161 and pix.blue == 226:

当然,正如@Aditya Santoso 所建议的那样:

if pix == (27, 161, 226):

关于python - 有没有一种方法可以检测某个像素的 RGB 值并在 if 条件下使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55530465/

相关文章:

python - cv2.error : OpenCV(4. 5.2) 👎 错误: (-5:Bad argument) 在函数 'cvtColor' 中

python - Python的pyautogui.PAUSE和time.sleep有什么区别?

python - 无法连接到端点URL: “http://127.0.0.1:8000/”

python - 如何解决 ImportError : No module named 'dbus' ?

python - 有限度量嵌入 : Good Algorithm?

Python。 IOError : [Errno 13] Permission denied: when i'm copying file

python-2.7 - 如何使用 PyAutoGUI 检测按键事件?

python - 如何使用 Python 控制 Minecraft 中的鼠标?

python - pyautogui:继续尝试,直到找到图像

python - 具有多对多关系模型的 Flask-Admin View