Определить положение цвета на экране Python - PullRequest
0 голосов
/ 17 апреля 2020

Я хочу щелкнуть по конкретному цвету на экране с помощью pyauto gui, но для этого мне нужно его положение, и я не могу найти никакой полезной информации о topi c. Я пытаюсь сделать автокликер Piano Tiles, и для этого я подумал, как определить цвет плиток и щелкнуть по нему.

Ответы [ 2 ]

0 голосов
/ 18 апреля 2020

Попробуйте сделать снимок экрана с меньшей областью, чтобы быстрее идентифицировать пиксели.

pyautogui.screenshot(region=(0,0, 300, 400))

Аргумент - это четырехзначный кортеж слева, сверху, ширины и высоты области для захвата. Вы можете даже взять только один пиксель каждой плитки, чтобы она работала лучше. Я не думаю, что было бы хорошей идеей сделать скриншот всего экрана, особенно когда плитки идут быстро.

Как бы я это сделал:

  1. используйте pyautogui.position() для получить координаты одного пикселя каждой области, в которой появляются плитки (при условии, что цвет плитки равен solid и не изменяется во время игры)
  2. использовать getpixel() для получения значений RGB пикселя плитки
  3. отметьте в l oop, имеют ли пиксели с координатами из шага 1 те же значения RGB, которые вы получили в шаге 2.
  4. Вызовите pyautogui.click(), если да
0 голосов
/ 18 апреля 2020

Положение цвета можно найти с помощью pyautogui:

import pyautogui

color = (255, 255, 255)

s = pyautogui.screenshot()
for x in range(s.width):
    for y in range(s.height):
        if s.getpixel((x, y)) == color:
            pyautogui.click(x, y)  # do something here
...