Я нашел руководство, в котором показано, что я пытаюсь сделать, я пытаюсь немного изменить его для своих нужд. Я делаю скриншот размером 26 пикселей. Если любой из этих пикселей [R] в RGB go больше 100, я хочу щелкнуть по экрану.
Когда я делаю снимок экрана из 26 пикселей, я получаю следующее:
ScreenShot pos=2134,1228 size=1x27 and print(img.pixels) give me this: (86, 126, 162)
Хорошо, кажется, я на правильном пути!
Я использую этот код для проверки:
def start():
with mss() as sct:
img = sct.grab(bbox)
for coord in coordX:
print(img)
сейчас, когда я go проверяю пиксели:
def start():
with mss() as sct:
img = sct.grab(bbox)
for coord in coordX:
print(img.pixels)
мы печатаем все 26 пикселей, у нас все хорошо!
Теперь я заставляю функцию щелкать по экрану:
def start():
with mss() as sct:
img = sct.grab(bbox)
for coord in coordX:
if img.pixel(coord, 0)[0] > 100:
pyautogui.click(2135, 1240)
break
Это не работает, когда я использую> 100 Вы можете видеть, что в распечатке указано, что R составляет 86 на первом пикселе, так что это должно работать. Когда я меняю его на менее 100, он щелкает каждый раз.
Полный код:
import pyautogui
import time
import keyboard
from mss import mss
pyautogui.PAUSE = 0
pyautogui.FAILSAFE = True
bbox = (2134, 1228, 2135, 1255)
coordX = [0]
def start():
with mss() as sct:
img = sct.grab(bbox)
for coord in coordX:
if img.pixel(coord, 0)[0] > 100:
pyautogui.click(2135, 1240)
break
time.sleep(1)
start()
Есть идеи, что я делаю неправильно? Спасибо за любую помощь!