Skip to main content

Manager who integrates screenshot matching, click operations, and other operations.

Project description

AutoSnapManager

AutoSnapManager 是一个用于统一管理自动化操作的工具库,旨在简化系统自动化任务的开发流程。无论是 Windows 桌面应用还是 Android 移动设备,本库都提供了简单易用的接口来实现屏幕截图、模板匹配、点击操作等功能(待扩展)。

安装

pip install autosnapmanager

快速开始

  1. 导入模块

    import asm
    
  2. 创建管理者对象
    根据目标平台选择对应的管理者对象:

    • Windows:
      manager = asm.Windows()
      manager = asm.Windows(window_name='MyApp')
      
    • Android:
      manager = asm.Android(serial='your_device_serial')
      
  3. 使用核心功能
    以下是一个简单的示例,展示如何使用 screenshotmatchclick 方法:

    # 截图并保存
    manager.screenshot(save_path='screenshot.png')
    
    # 匹配模板
    if manager.match(template_path='template.png', threshold=0.8):
        print("模板匹配成功!")
    
    # 点击匹配位置
    manager.click(template='template.png', threshold=0.8)
    
    # 点击指定位置
    manager.click((100, 200)) 
    

功能概述

核心 API

WindowsManagerAndroidManager 继承自抽象基类 Manager,实现了以下核心方法:

1. screenshot(save_path: str = None)

  • 功能: 截取屏幕截图。
  • 参数:
    • save_path: 可选参数,指定截图保存路径,默认保存在当前目录。
  • 返回值: 无

2. match(template_path: str, threshold: float = None)

  • 功能: 检查模板是否匹配成功。
  • 参数:
    • template_path: 模板图片路径。
    • threshold: 匹配阈值,默认为 0.9
  • 返回值: 返回布尔值,表示匹配是否成功。

3. click(template: Union[str, tuple], threshold: float = None)

  • 功能: 点击匹配位置或指定坐标。
  • 参数:
    • template: 可以是模板图片路径或元组坐标 (x, y)
    • threshold: 匹配阈值(仅当 template 为图片时有效)。
  • 返回值: 无

平台支持

1. WindowsManager

初始化参数

  • window_name: 可选窗口名称。
  • screencap: 指定截图方法,默认为 WindowScreenCap(如果窗口存在),否则为 FullScreenCap
  • match: 指定模板匹配方法,默认为 OpenCVMatch
  • click: 指定点击方法,默认为 Win32GuiClick(如果窗口存在),否则为 PyAutoGuiClick

示例

manager = asm.Windows(
    window_name="MyApp",
    screencap=asm.ScreenCaps.Window,
    match=asm.Matches.OpenCV,
    click=asm.Clicks.Win32Gui
)

2. AndroidManager

初始化参数

  • serial: 设备序列号。
  • screencap: 指定截图方法,默认为 MiniCap
  • match: 指定模板匹配方法,默认为 OpenCVMatch
  • click: 指定点击方法,默认为 ADBTouch

示例

manager = asm.Android(
    serial="device_serial",
    screencap=asm.ScreenCaps.MiniCap,
    match=asm.Matches.OpenCV,
    click=asm.Clicks.Adb
)

特殊方法

  • 滑动操作:
    manager.swipe(start_x=100, start_y=200, end_x=400, end_y=200)
    

3. 参数格式详解

为了方便用户灵活配置,AutoSnapManager 支持多种参数格式:

(1) 字符串格式

直接通过字符串指定方法名称:

manager = asm.Windows(screencap='window', click='pyautogui')
manager = asm.Android(screencap='minicap', click='minitouch')

(2) 枚举变量格式

使用枚举变量指定方法:

manager = asm.Windows(screencap=asm.ScreenCaps.Window, click=asm.Clicks.Win32Gui)
manager = asm.Android(screencap=asm.ScreenCaps.MiniCap, click=asm.Clicks.MiniTouch)

(3) 类实例格式

通过类实例自定义参数:

# Windows 示例
manager = asm.Windows(
    screencap=asm.WindowScreenCap(window_name="MyApp"),
    match=asm.OpenCVMatch(threshold=0.8, colors=True),
    click=asm.Win32Api(window_name="MyApp")
)

# Android 示例
manager = asm.Android(
    screencap=asm.MiniCap(serial="device_serial", rate=60, quality=80),
    click=asm.MiniTouch(serial="device_serial")
)

截图方法

1. FullScreenCap(Windows)

  • 功能: 全屏截图。
  • 性能: 快,适合全屏操作。
  • 初始化: 无需额外参数。

2. WindowScreenCap(Windows)

  • 功能: 窗口截图,即使窗口被遮挡也能截取。
  • 性能: 快,适合特定窗口操作。
  • 初始化: 需要提供窗口名称。

3. ADBCap(Android)

  • 功能: 使用 ADB 截图。
  • 性能: 较慢(300ms之上)。
  • 初始化: 需要提供设备序列号。

4. MiniCap(Android)

  • 功能: 高效实时屏幕传输工具。
  • 性能: 极快(约 20-30ms)。
  • 初始化: 支持多种参数(如帧率、质量等)。

模板匹配方法

OpenCVMatch

  • 功能: 基于 OpenCV 的模板匹配。
  • 参数:
    • threshold: 匹配阈值,默认 0.9
    • colors: 是否启用色彩匹配,默认 False
    • scale: 是否启用缩放匹配,默认 False

点击与触摸方法

Windows 点击

  • PyAutoGuiClick: 操作真实鼠标。
  • Win32GuiClick: 操作虚拟鼠标,不影响真实鼠标。

Android 触摸

  • ADBTouch: 支持点到点直线滑动。
  • MiniTouch: 支持曲线滑动,低延迟,不支持安卓13以上。
  • MAATouch: MiniTouch 的增强版本,不支持安卓13以上。

贡献与反馈

欢迎贡献代码或提出问题!请访问 AutoSnapManager 提交 Issue 或 Pull Request。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

autosnapmanager-0.1.0.tar.gz (2.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

autosnapmanager-0.1.0-py3-none-any.whl (2.5 MB view details)

Uploaded Python 3

File details

Details for the file autosnapmanager-0.1.0.tar.gz.

File metadata

  • Download URL: autosnapmanager-0.1.0.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.7

File hashes

Hashes for autosnapmanager-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ce35525f0e888d1f73fe0b3317240fef3af6850b741c54a9a66a17d98a377e92
MD5 96c85410c8ae4c208734de91d3e3f7d9
BLAKE2b-256 4dad0e3af5b31b95392a1e5b0d052f264fab52392f05eb1f9fd9595a0c9cbe0b

See more details on using hashes here.

File details

Details for the file autosnapmanager-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for autosnapmanager-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 381f7df76ada45245bcec9050fe37546a556234c576ed794b47e9d6b9a19e425
MD5 2acaf64bf0e989b02f667c3f933373d6
BLAKE2b-256 c63cbd0a0ade37dc910c8d57a78c0f3a667cec51eface16e549c9ee11619e303

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page