Как использовать PyAutoGUI для определения значений RGB

#python #macos #colors #mouse #pyautogui

#python #macos #Цвет #мышь #pyautogui

Вопрос:

Я пытаюсь создать небольшого бота, который нажимает только на определенные цвета. Я считаю pyautogui.displayMousePosition() , что должно отображаться положение моей мыши, а также значения RGB пикселя, на котором находится мышь. Вместо этого я вижу только позиционные значения (видно на скриншоте). Может ли это быть проблемой с macOS?

Значения RGB не отображаются на консоли python — скриншот

Также хотелось бы узнать, есть ли альтернативный способ, которым я могу это сделать.

Комментарии:

1. Я не могу найти displayMousePosition() функцию в документах, какую версию вы используете?

Ответ №1:

displayMousePosition() это неправильная функция, которую можно использовать практически для чего угодно, кроме проверки правильности функционирования библиотеки. Он не возвращает никаких значений, все, что он делает, это выводит информацию на консоль. Я настоятельно рекомендую просмотреть документацию pyautogui, чтобы узнать больше о функциональности, предоставляемой библиотекой.

Предполагая, что вы знаете координаты экрана x и y, для которых вы хотите получить цвет, вы захотите сделать снимок экрана и проверить значения цвета в соответствующем месте.

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

Существует оболочка, которая позволяет вам получать информацию о пикселях из пары координат, которую вы также можете использовать.

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

Комментарии:

1. последний пример должен быть px = pyautogui.pixel(x, y)

Ответ №2:

Вот код для проверки пикселя точки мыши:

 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)
  

Ответ №3:

Если вам не удалось получить значение RGB пикселя,

вы можете ввести координату x y в следующее, чтобы получить цветовой код.

 import pyautogui
PIXEL = pyautogui.screenshot(region=(x, y, 1, 1))
PIXEL.getcolors()