autojs之选择指定区域

使用情景

为了展示ocr的识别效果, 要把识别的文字圈起来, 并且显示识别到的文字

效果展示

在这里插入图片描述

原理

  1. 加载一个屏幕大小的悬浮窗
  2. 悬浮窗只有一个canvas控件
  3. 用canvas画出数据

代码讲解

  1. 悬浮窗布局
var window = floaty.rawWindow(
  <frame gravity="center">
    <canvas id="board"></canvas>
  </frame>
);
  1. 调整悬浮窗大小, 充满屏幕
window.setSize(-1, -1);
  1. 让悬浮窗一直显示
setInterval(function () {}, 1000);
  1. 创建两支画笔, 一个画矩形, 一个画文字
let rectanglePaint = new Paint();
rectanglePaint.setStrokeWidth(3);
rectanglePaint.setColor(colors.parseColor("#00ff00"));
rectanglePaint.setStyle(Paint.Style.STROKE); //空心矩形框

let textPaint = new Paint();
textPaint.setTextAlign(Paint.Align.CENTER);
textPaint.setTextSize(50);
textPaint.setStyle(Paint.Style.FILL);
textPaint.setColor(colors.parseColor("#f000ff"));
  1. 文字高度
let fontMetrics = textPaint.getFontMetrics();
  1. 测试的数据
let data = {
  rect: [100, 100, 200, 200],
  content: "hello world",
};
  1. 画出矩形和文字
window.board.on("draw", function (canvas) {
  let rect = data.rect;
  canvas.drawRect(rect[0], rect[1], rect[2], rect[3], rectanglePaint);
  canvas.drawText(
    data.content,
    rect[0] + parseInt((rect[2] - rect[0]) / 2),
    rect[3] + Math.abs(fontMetrics.top),
    textPaint
  );
});

代码仓库:

https://gitee.com/yashujs/autojs-ocr


微信公众号 AutoJsPro教程

在这里插入图片描述

QQ群

747748653

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牙叔教程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值