我有几个问题:
1:图片OCR方面:识别当前屏幕,进行点击指定的图片,怎么操作?
2:颜色方面怎么弄?比如说我要点击指定颜色,指定区域内的颜色怎么弄?AI生成汇报错的,试了好几次都不行
如果能收到这封邮件,希望能直接给我答复,谢谢,开发文档我看了,但是没有弄明白
请依次作答

HAMI_9720382888 · 2 小时前
第 1 条补充
·
2 小时前

如何点击指定范围内的颜色?请告诉我详细的步骤和代码

第 2 条补充
·
1 小时前

if (!requestScreenCapture()) {
toastLog('请授予屏幕截图权限!');
hamibot.exit(); // 权限未授予则退出
}
sleep(8000);
sleep(1000);
var wx = images.read('/storage/emulated/0/tiaoshi/配置图片文件/快手.png');
//截图并找图
var p = findImage(captureScreen(), wx, {
region: [0, 50],
threshold: 0.8,
});
if (p) {
toastLog('在桌面找到了快手图标啦:' + p);
} else {
toastLog('在桌面没有找到快手图标');
}

hamibot.exit();
找到图片后,如何进行点击制作图片?请生成代码

回答

Hamibot AI
1
· 2 小时前
  1. 关于图片OCR识别和点击指定图片,Hamibot 提供了 images.findColorimages.findColorEquals 函数用于颜色查找,但这些函数并不直接支持 OCR 识别。如果你需要识别屏幕上的文字并点击特定的文字或图像,可能需要结合其他工具或 API 实现,例如使用 Tesseract OCR 或者其他图像识别服务。目前 Hamibot 的文档中没有提到直接支持 OCR 的功能,你可以尝试在脚本中调用外部 API 来实现这个需求。

  2. 关于颜色操作,你可以使用 images.findColorimages.findColorEquals 函数来查找指定颜色。例如,要查找红色(#ff0000)并点击该位置,可以参考以下代码:

// 文档地址 https://docs.hamibot.com/
auto.waitFor();
if (!requestScreenCapture()) {
    toast("没有授予权限");
    exit();
}
sleep(1000);

while (true) {
    var img = captureScreen();
    var point = findColor(img, "#ff0000", {
        region: [x, y, width, height], // 指定区域,如果不指定则在整张图片中查找
        threshold: threshold // 可选参数,用于设置颜色匹配的阈值
    });
    if (point) {
        toast("找到红色,坐标为(" + point.x + ", " + point.y + ")");
        click(point.x, point.y); // 点击找到的颜色位置
        break;
    }
}

请将 x, y, width, height, 和 threshold 替换为你实际需要的值。如果 AI 生成的代码有错误,建议你检查代码是否符合 JavaScript 语法,并确保所有变量都已正确初始化。如果问题仍然存在,可以发送邮件到 support@hamibot.cn 获取更专业的帮助。


补充回答 1

要点击指定范围内的颜色,你可以使用 Hamibot 提供的 images.findColorimages.findColorEquals 函数来查找颜色,然后使用 click 函数点击找到的位置。以下是详细的步骤和代码示例:

步骤

  1. 获取屏幕截图:使用 captureScreen() 函数获取当前屏幕的图片。
  2. 查找颜色:使用 findColorfindColorEquals 函数在指定区域内查找颜色。
  3. 点击位置:如果找到颜色,使用 click 函数点击该位置。

代码示例

// 文档地址 https://docs.hamibot.com/
auto.waitFor();
if (!requestScreenCapture()) {
    toast("没有授予权限");
    exit();
}
sleep(1000);

// 指定颜色和区域
var color = "#ff0000"; // 要查找的颜色,例如红色
var x = 100; // 区域左上角的横坐标
var y = 100; // 区域左上角的纵坐标
var width = 200; // 区域的宽度
var height = 200; // 区域的高度
var threshold = 4; // 颜色匹配的阈值

while (true) {
    var img = captureScreen();
    var point = findColor(img, color, {
        region: [x, y, width, height],
        threshold: threshold
    });
    if (point) {
        toast("找到颜色,坐标为(" + point.x + ", " + point.y + ")");
        click(point.x, point.y); // 点击找到的颜色位置
        break;
    }
    sleep(1000); // 每隔1秒检查一次
}

说明

  • color:要查找的颜色,可以是十六进制字符串(如 #ff0000)或数字。
  • region:指定查找颜色的区域,格式为 [x, y, width, height],其中 xy 是区域左上角的坐标,widthheight 是区域的宽度和高度。
  • threshold:颜色匹配的阈值,范围为 0~255,越小越相似,0 为颜色相等,255 为任何颜色都能匹配。

请根据你的需求调整 colorxywidthheightthreshold 的值。如果问题仍然存在,可以发送邮件到 support@hamibot.cn 获取更专业的帮助。


补充回答 2

要找到图片后进行点击,你可以使用 click 函数。以下是修改后的代码示例,它在找到图片后会执行点击操作:

// 文档地址 https://docs.hamibot.com/
auto.waitFor();
if (!requestScreenCapture()) {
    toastLog('请授予屏幕截图权限!');
    hamibot.exit(); // 权限未授予则退出
}
sleep(8000);
sleep(1000);

var wx = images.read('/storage/emulated/0/tiaoshi/配置图片文件/快手.png');

// 截图并找图
var p = findImage(captureScreen(), wx, {
  region: [0, 50],
  threshold: 0.8,
});

if (p) {
  toastLog('在桌面找到了快手图标啦:' + p);
  // 点击找到的图片位置
  click(p.x, p.y);
} else {
  toastLog('在桌面没有找到快手图标');
}

hamibot.exit();

说明

  • click(p.x, p.y):在找到图片的位置 (p.x, p.y) 处执行点击操作。
  • region: [0, 50]:指定查找图片的区域,这里是从屏幕左上角开始,高度为 50 的区域。
  • threshold: 0.8:设置图片匹配的阈值,范围是 0 到 1,值越大越容易匹配。

请根据你的实际需求调整 regionthreshold 的值。如果还有其他问题,请随时提问。

ℹ️ 本回答由 AI 生成,内容仅供参考