You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在autopy中实现类似PyAutoGUI LocateOnScreen()的图像点击功能?

在autopy中实现类似PyAutoGUI的locateOnScreen()功能

首先得指出你刚才代码的问题:autopy.mouse.click() 方法需要接收的是坐标值(x和y),而不是Bitmap对象,直接传图像肯定会触发TypeError,这是核心错误。

接下来,autopy里其实有对应的图像查找功能,就是 autopy.bitmap.Bitmap.find_bitmap() 方法,它可以实现类似PyAutoGUI中locateOnScreen()的效果——在屏幕上定位目标图像的位置。下面是完整的实现步骤和示例代码:

实现步骤

  • 加载你要查找的目标图像
  • 捕获当前屏幕的截图
  • 在屏幕截图中查找目标图像的位置
  • 如果找到,计算图像的中心坐标并执行点击

完整示例代码

import autopy

def locate_and_click(target_image_path):
    # 1. 加载目标图像
    try:
        target_bmp = autopy.bitmap.Bitmap.open(target_image_path)
    except Exception as e:
        print(f"加载目标图像失败: {e}")
        return

    # 2. 捕获屏幕截图
    screen_bmp = autopy.bitmap.capture_screen()

    # 3. 在屏幕中查找目标图像,threshold是匹配阈值(0-1,值越低匹配越宽松)
    match_rect = screen_bmp.find_bitmap(target_bmp, threshold=0.9)

    if match_rect:
        # 4. 计算图像中心坐标
        center_x = match_rect.x + match_rect.width // 2
        center_y = match_rect.y + match_rect.height // 2

        # 5. 移动鼠标到中心并点击
        autopy.mouse.move(center_x, center_y)
        autopy.mouse.click()
        print(f"已在坐标({center_x}, {center_y})处点击目标图像")
    else:
        print("未找到目标图像")

# 调用函数,替换成你的图像路径(建议用原始字符串避免转义问题)
locate_and_click(r'C:\Users\carlo\Desktop\prueba\Captura.png')

关键细节说明

  • find_bitmap() 方法返回的是一个Rect对象,包含x(左上角x坐标)、y(左上角y坐标)、width、height四个属性,如果没找到匹配的图像会返回None
  • threshold参数可以调整匹配的严格程度:如果你的目标图像可能有轻微的颜色差异或缩放,可适当降低这个值(比如0.8),但太低可能会误匹配
  • 路径建议用原始字符串(前缀加r),这样不用处理反斜杠的转义问题
  • 如果需要查找屏幕上的多个匹配项,可以用 find_bitmaps() 方法(注意复数形式),它会返回所有匹配的Rect对象列表

内容的提问来源于stack exchange,提问作者Peripatein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:41:11