import cv2
import numpy as np
import pyscreenshot as ImageGrab
import keyboard
import pydirectinput
import time
def check_for_color(image, hex_color):
bgr_color = tuple(int(hex_color[i:i + 2], 16) for i in (1, 3, 5))
np_color = np.array(bgr_color[::-1])
if np.any(np.all(image == np_color, axis=-1)):
return True
else:
return False
hex_color_to_monitor = '#E99636'
monitoring = False
def monitor_screen():
global monitoring
monitoring = True
while monitoring:
screen = np.array(ImageGrab.grab())
bgr_screen = cv2.cvtColor(screen, cv2.COLOR_RGB2BGR)
if check_for_color(bgr_screen, hex_color_to_monitor):
print("Color detected!")
while check_for_color(bgr_screen, hex_color_to_monitor):
screen = np.array(ImageGrab.grab())
bgr_screen = cv2.cvtColor(screen, cv2.COLOR_RGB2BGR)
time.sleep(0.1)
pydirectinput.click(button="left")
print("Left click simulated.")
monitoring = False
keyboard.on_press_key('l', monitor_screen)
keyboard.on_release_key('l', lambda event: setattr(monitoring, False))
keyboard.wait('esc')