hamibot怎么使用【点击图片】的操作,请给出具体案例

HAMI_4631376836 · 5 小时前
第 1 条补充
·
4 小时前

请以base64的方式重新给出点击图片的可行代码

回答

Hamibot AI
1
· 5 小时前

文档地址 https://docs.hamibot.com/

在 Hamibot 中,“点击图片” 的操作通常分为两个步骤:

  1. 找图:在屏幕截图中查找目标图片的位置。
  2. 点击坐标:如果找到图片,则获取其坐标并执行点击。

你需要先准备一张目标图片(例如微信图标、某个按钮截图),保存到设备中(如 /sdcard/ 目录下),然后通过脚本读取并进行匹配和点击。


✅ 具体案例:点击桌面上的“微信”图标

// 启用无障碍服务
auto.waitFor();

// 请求截图权限
if (!requestScreenCapture()) {
    toastLog('没有授予 Hamibot 屏幕截图权限');
    hamibot.exit();
}

// 等待截图准备
sleep(1000);

// 读取本地模板图片(请确保该路径下的图片存在)
var wechatIcon = images.read('/sdcard/微信图标.png');

// 如果未找到模板图片,提示错误
if (!wechatIcon) {
    toastLog('未找到模板图片,请检查路径是否正确');
    hamibot.exit();
}

// 截取当前屏幕
var screen = captureScreen();

// 在屏幕上查找图片
var point = findImage(screen, wechatIcon, {
    region: [0, 0, device.width, device.height], // 搜索区域为全屏
    threshold: 0.8 // 匹配阈值,0.8 表示 80% 相似度
});

// 判断是否找到
if (point) {
    toastLog('找到微信图标,坐标:' + point);
    
    // 执行点击(默认点击图片中心点)
    click(point.x, point.y);
} else {
    toastLog('未找到微信图标');
}

🔧 使用说明

  • 模板图片制作

    • 使用手机截图功能截取你要点击的“图片”或“按钮”。
    • 使用图片编辑工具裁剪成最小范围,并保存为 PNG 格式。
    • 推荐命名如:/sdcard/微信图标.png
  • threshold 参数说明

    • 范围是 0.0 ~ 1.0,数值越大要求越精确。
    • 一般建议设置为 0.8 ~ 0.95
    • 若界面有轻微变化(颜色偏移、缩放),可适当调低。
  • region 参数说明

    • [x, y, width, height] 定义搜索区域,提高效率。
    • 如只在屏幕下半部分查找,可以写 region: [0, 1000, 1080, 400]
  • 兼容性注意

    • 不同设备分辨率不同,Hamibot 会自动根据 setScreenMetrics() 放缩坐标。建议在脚本开头设定参考分辨率:
      setScreenMetrics(1080, 1920); // 以 1080x1920 为设计基准
      

📌 提示与最佳实践

  • 将常用图标统一存放在 /sdcard/Pictures/hamibot/ 下,便于管理。
  • 可结合 while 循环重试找图,直到出现为止:
    while (!clickOnImage('/sdcard/确定按钮.png')) {
        sleep(1000);
    }
    
    function clickOnImage(path) {
        var img = images.read(path);
        if (!img) return false;
        var p = findImage(captureScreen(), img, { threshold: 0.8 });
        if (p) click(p.x, p.y);
        return p !== null;
    }
    
  • 避免使用动态内容作为模板(如含时间、头像变化等)。

完成以上配置后,运行脚本即可实现“看到指定图片 → 自动点击”的自动化操作。


补充回答 1

文档地址 https://docs.hamibot.com/

你可以将目标图片以 Base64 编码内嵌到脚本中,避免依赖外部文件。这种方式更适合分发和管理脚本。

以下是一个完整的示例:使用 Base64 解码图片,并在屏幕上查找该图片并点击。

// 启用无障碍服务
auto.waitFor();

// 请求截图权限
if (!requestScreenCapture()) {
    toastLog('请求截图失败');
    hamibot.exit();
}

// 等待截图初始化
sleep(1000);

// 示例:Base64 编码的 PNG 图片(请替换为你自己的 Base64 数据)
var base64Image = "iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACxElEQVRoQ+2ZTUgUURzHfzM7q6u7q8PqYZEWYfQQRA9F3bqEFEEQhFBB1KFD91LiweAiCDpElyB6CCJEUEiHIIgggggiQhBBBAkiiCAiBBFBEPVHdmdnZt7sTntvZ3dnd2Z3v8/D7L75vt/3+/3e/MabCMYYkD+aAHjS0tIWAHgM4C6AZwCeA3gO4CGAGQCjANIA9AEYAjAM4ACAQgCHAOwDsAfATgCbAKwEsArASgArAbQB+AtgE4B/AHYB+AXgLIDPAE4D+ALgAoBvAI4B+B7r5yWAnwBOAPgD4CyA3wAuAPgH4DaAlwC+AzgJ4GcMngXwG8BpAH8AnALwF8AFAD8BXAHwBcBZAH8AnAHwG8BZAH8DXAbwG8BlAH8CXAHwG8BVAD8BXAHwG8BVAL8AXAHwG8BVAD8BXAHwG8DVGLwG4DeAawB+A7gG4DeAawB+A7gG4DeAawB+A7gG4DeAazF4FsBvANcA/AZwDcBvANcA/AZwDcBvANcA/AZwDcBvANdi8CyA3wCuAfgN4BqA3wCuAfgN4BqA3wCuAfgN4BqA3wCuAfi9EOALgAcA3gF4BuAvgHMA/gJ4COAJgEcAHgF4AOABgPsA7gG4A+AWgJsAbgC4DuAagKsArgC4DOAygIsALgC4AOA8gHMAzgI4A+AUgNMAPgN4CeAhgCcAHgJ4AOA+gHsA7gK4A+AugNsAbgG4CeAmgBsArgO4BuAqgCsALgO4DOASgIsALgK4AOA8gHMAzgI4A+AUgNMAPgN4CeAhgCcAHgJ4AOA+gHsA7gK4A+AWgJsAbgK4AeA6gGsArgK4AuAygMsALgK4AOA8gHMAzgI4A+AUgNMAPgN4CeAhgCcAHgJ4AOA+gHsA7gK4A+AWgJsAbgK4AeA6gGsArgK4AuAygMsALgK4AOA8gHMAzgI4A+AUgNMAPgN4CeAhgCcAHgJ4AOA+gHsA7gK4A+AWgJsAbgK4AeA6gGsArgK4AuAygMsALgK4AOA8gHMAzgI4A+AUgNMAPgN4CeAhgCcAHgJ4AOA+gHsA7gK4A+AWgJsAbgK4AeA6gGsArgK4AuAygMsALgK4AOA8gHMAzgI4A+AUgNMAPgN4CeAhgCcAHgJ4AOA+gHsA7gK4A+AWgJsAbgK4AeA6gGsArg
ℹ️ 本回答由 AI 生成,内容仅供参考