pyautogui

from typing import Tuple

import pyperclip
import pyautogui
import cv2
import numpy as np


class Gui(object):
    '''
    pyautogui 操作
    '''

    @classmethod
    def find_img_position_yn(cls, file_path: str) -> (int, int):
        '''
        查找图片位置
        :param file_path: 文件路径
        :return: 返回是否查到
        '''
        target_image = cv2.imread(file_path)
        screenshot = pyautogui.screenshot()
        screenshot = np.array(screenshot)
        screenshot = cv2.cvtColor(screenshot, cv2.COLOR_RGB2BGR)
        result = cv2.matchTemplate(screenshot, target_image, cv2.TM_CCOEFF_NORMED)
        _, max_val, _, max_loc = cv2.minMaxLoc(result)
        if max_val > 0.9:
            return True
        else:
            return False

    @classmethod
    def find_img_position(cls, file_path: str) -> (int, int):
        '''
        查找图片位置
        :param file_path: 文件路径
        :return: 返回坐标
        '''
        target_image = cv2.imread(file_path)
        screenshot = pyautogui.screenshot()
        screenshot = np.array(screenshot)
        screenshot = cv2.cvtColor(screenshot, cv2.COLOR_RGB2BGR)
        result = cv2.matchTemplate(screenshot, target_image, cv2.TM_CCOEFF_NORMED)
        _, max_val, _, max_loc = cv2.minMaxLoc(result)
        target_center = (max_loc[0] + target_image.shape[1] // 2, max_loc[1] + target_image.shape[0] // 2)
        return target_center

    @classmethod
    def click(cls, position: Tuple[int, int]):
        return pyautogui.click(position)

    @classmethod
    def hotkey(cls, *args, **kwargs):
        return pyautogui.hotkey(args, kwargs)
        pass

    @classmethod
    def delete(cls):
        return pyautogui.press('delete')

    @classmethod
    def enter(cls):
        return pyautogui.press('enter')

    @classmethod
    def copy(cls, text: str):
        return pyperclip.copy(text)

    '''pyautogui.hotkey('ctrl', 'a')
    pyautogui.press('delete')'''
    pass

posted @   hziwei  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示