编写一个模拟屏幕点击和指定区域ocr识别并保存识别结果的功能

已存档
HAMI_7772248825 · 19 天前

回答

Hamibot AI
1
· 19 天前

以下是一个Hamibot脚本,用于模拟屏幕点击和指定区域OCR识别,并保存识别结果。脚本首先请求屏幕截图权限,捕获屏幕图像,裁剪到指定区域,进行OCR识别,将结果保存到文件,然后模拟点击屏幕上的一个点(示例中点击坐标(500, 600))。请根据实际需求调整区域参数和点击位置。

// 文档地址 https://docs.hamibot.com/
auto.waitFor(); // 等待无障碍服务启用

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

sleep(1000); // 等待一秒让截图权限生效

// 捕获整个屏幕
var img = captureScreen();
if (!img) {
    toastLog('截图失败');
    hamibot.exit();
}

// 定义OCR区域:left, top, width, height(示例值,请根据实际调整)
var regionLeft = 100;
var regionTop = 200;
var regionWidth = 300;
var regionHeight = 100;

// 裁剪图像到指定区域
var croppedImg = images.crop(img, regionLeft, regionTop, regionWidth, regionHeight);
if (!croppedImg) {
    toastLog('裁剪图像失败');
    hamibot.exit();
}

// 使用OCR识别裁剪后的图像(只返回文本)
var ocrText = ocr.recognizeText(croppedImg);
toastLog('OCR识别完成');

// 保存识别结果到文件(路径为/sdcard/ocr_result.txt)
var filePath = "/sdcard/ocr_result.txt";
files.write(filePath, ocrText);
toastLog('识别结果已保存到 ' + filePath);

// 模拟屏幕点击(示例点击坐标(500, 600),请根据实际调整)
click(500, 600);
toastLog('点击执行完成');

// 退出脚本
hamibot.exit();

使用说明:

  • 调整区域参数:修改regionLeftregionTopregionWidthregionHeight变量以定义OCR识别区域。
  • 调整点击位置:修改click(500, 600)中的坐标以匹配需要点击的点。
  • 保存路径:文件默认保存在/sdcard/ocr_result.txt,确保设备有存储权限。
  • 兼容性:脚本使用Rhino 1.7.15兼容的JavaScript语法,避免使用ES6特性。

如果遇到问题(如裁剪失败或OCR识别错误),请检查Hamibot版本(需要1.2.2或以上支持OCR),并确保无障碍服务和截图权限已授予。

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