通过AUTo js可以免ROOT找图,识图并点击,其实实现方法很简单,就是调用系统的截图权限和无障碍权限就行了,我们下面会把具体的步骤一步步給大家讲解出来,方便大家学习哈
开发思路:
- 截屏(含有公告界面)
- 读取 “截屏图片” ➤ 剪切 ➤ 保存 ➤ 得到 “✖”
- 找图
我们需要注意的是:这3步要分开去执行~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一步:我们先把屏幕截屏一张
(截屏图片的保存路径:sdcard/Pictures/Screenshots/截屏的图片.jpg)
文件管理 ➤ 内部存储(sdcard) ➤ Pictures ➤ Screenshots ➤ 截屏的图片.jpg
如果不知道截图的文件保存在哪里,你可以进入图库,然后长按图片,然后查看该图片的属性找到具体路径。
用AUTO JS代码截图也非常简单奥
步骤:
requestScreenCapture(); 申请系统的截图权限
sleep(3000); 延时3秒
captureScreen("/sdcard/Pictures/Screenshots/公告" + ".jpg"); 截屏权限申请成功后就开始截图,然后把截屏后的图片保存到/sdcard/Pictures/Screenshots/目录
sleep(3000); 延时3秒
第二步:读取 “截屏图片” ➤ 剪切 ➤ 保存 ➤ 得到 “✖”
var src = images.read("/sdcard/Pictures/Screenshots/公告.jpg"); 读取图片
//images.clip(img, x, y, w, h) images.clip(图片路径, x, y, 宽, 高) 剪切图片
var clip = images.clip(src, 2720, 60, 100, 110);
images.save(clip, "/sdcard/Pictures/Screenshots/公告_关闭.jpg"); 保存图片
[点击 "X",查看 坐标(X,Y) 的位置]
通过如上代码就剪辑出了这样的一个代码
//在 大图片 中查找 小图片 的位置(模块匹配),找到时返回位置坐标(Point),找不到时返回null。
var p = findImage(captureScreen(), img_small);
if (p) {
toastLog("公告_关闭 - 找到了,坐标:" + p.x + "----" + p.y);
click(p.x, p.y);//点击坐标
} else {
toastLog("公告 - 未找到");
}
好了~ 找图完成
注意:找图后点击的位置 是 “公告_关闭.jpg” 的左上角
如果截出来的图片是这样的,直接 click(p.x, p.y); 是点击不到 “X” 的
|