到底NB不NB自己看就知道了。当然素材得你自己准备,j就算分辨率机型都不一样,咱也照样找。
我先贴方法之后在解释参数:
/** * 找图,找到并点击 * @param {可以是数组也可以是字符串,传输数组可以多次找图知道找到为止} img_path_array * @param {找图区域,默认是全屏找图,该参数可以不传输} area_region * @param {相似度,默认是0.8,可以不传输} threshold * @returns true表示执行成功Flase表示失败 */ function clickAreaForFindImage(img_path_array, area_region, threshold) { try { area_region = area_region || [0, 0, device.width, device.height] //默认的找图区域 全屏找图 前2位是坐标 后面是长度和宽度 千万别理解成是坐标 threshold = threshold || 0.8 // 默认的相识度0.8 if (img_path_array instanceof Array) { let arrayLength = img_path_array.length for (let i = 0; i < arrayLength; i++) { toastLog("正在进行第" + (i + 1) + "次找图...") img_path = img_path_array[i] //小图地址可判断是否存在 if (!files.exists(img_path)) { toastLog(img_path + "文件不存在因此跳过") continue } var little_image = images.read(img_path) //小图 var find_result_bounds = findImage( captureScreen(), little_image, { region: area_region, threshold: threshold }); toastLog(find_result_bounds) if (find_result_bounds) { toastLog("准备点击:" + find_result_bounds) click(find_result_bounds.x, find_result_bounds.y) return true } else { toastLog("小图存在但是在大图中未找到图片") return false } } } if (typeof (img_path_array) == "string") { img_path = img_path_array//小图地址可判断是否存在 if (!files.exists(img_path)) { toastLog(img_path + "文件不存在因此跳过") return false } var little_image = images.read(img_path) //小图 var find_result_bounds = findImage( captureScreen(), little_image, { region: area_region, threshold: threshold }); toastLog(find_result_bounds) if (find_result_bounds) { toastLog("准备点击:" + find_result_bounds) click(find_result_bounds.x, find_result_bounds.y) return true } else { toastLog("小图存在但是在大图中未找到图片") return false } } } catch (error) { toastLog("clickAreaForFindImage方法出现错误:" + error) return false; } }
封装了史上最NB的找图函数clickAreaForFindImage(img_path_array, area_region, threshold)
1 第一个参数可以是数组也可以是字符串,传输数组可以多次找图知道找到为止
2 第二个参数是找图区域,默认是全屏找图,该参数可以不传输
3 第三个参数是相识度,默认是0.8,可以不传输
直接判断是否成功完了就可以下一步操作了 示例代码
requestScreenCapture(); see_video_image = ["./FindImage/成语大家族/看视频抢红包1.png", "./FindImage/成语大家族/看视频抢红包2.png"] //see_video_image = "./FindImage/成语大家族/看视频抢红包2.png" area_region = [0, device.height / 2, device.width, device.height / 2] if (clickAreaForFindImage(see_video_image, area_region)) { //干点啥 }
我提供了2个参数
第一个是小图地址的数组第二个是区域,第一个参数也可以是字符串的小图地址。
拿去用吧...