zm.FindPicEx 超级找图返回所有坐标
🎯功能
与zm.FindPic 超级找图类似, 区别在于本命令会找到所有符合条件的坐标并返回二维数组
注意
本命令没有方向参数!
📜语法
结果 = zm.FindPicEx([对象,][x1,y1,x2,y2,][图片][,偏色][,相似度[,智能相似度[,相似度步长]]][,超时时间][,是否点击][,点击坐标][,显示日志][,输出行号][,备注][,等待消失][,消失超时][,参数返回值])
📥参数
参数 | 数据类型 | 解释 |
---|---|---|
对象 | 表 | 可选, 把所有参数放入一个table中传入, 若后面跟有其他参数, 则会对应覆盖对象数据 |
x1 | 数值型 | 可选, 查找范围的左上角x坐标, 省略默认为0 |
y1 | 数值型 | 可选, 查找范围的左上角y坐标, 省略默认为0 |
x2 | 数值型 | 可选, 查找范围的右下角x坐标, 省略默认为0 |
y2 | 数值型 | 可选, 查找范围的右下角y坐标, 省略默认为0 |
图片 | 字符串 | 可选, 查找的图片路径, 多个图片路径用“|”隔开, 支持透明图, 支持PNG BMP JPG等格式, 注意图片数量过多可能会导致异常错误, 具体以设备性能为准. |
偏色 | 字符串 | 可选, 图片的偏色, 格式为“BBGGRR”, 省略默认为"000000" |
相似度 | 数值型 | 可选, 对比查找的相似度小数, 省略默认为0.8 , 取值范围[0, 1.0] , 越高越相似 |
智能相似度 | 数值型 | 可选, 与相似度组成组成智能相似计算范围, 适合图色变化大的情况, 省略默认取值与相似度 相同, 取值范围[0, 1.0] , 越高越相似 |
相似度步长 | 数值型 | 可选, 智能相似度调节变化间隔, 必须写在相似度 后面, 省略默认为0.05 , 取值范围[0, 1.0] |
超时时间 | 数值型 | 可选, 最大查找耗时, 单位毫秒, 如果一次找不到, 可以限时循环查找, 省略默认为1 |
是否点击 | 布尔型 | 可选, 是否需要找到后自动点击该坐标, 支持[true, false] 这两个值, 省略默认为false |
点击坐标 | 字符串 | 可选, 点击修改后的坐标, 格式"±x,±y,t" , 省略为找到的坐标, t 是可选的, 表示点击后延时毫秒, 例如"100,100" 表示固定点击坐标100,100, "+10,-10" 表示偏移点击找到的x+10,y-10位置, "10,10,2000" 表示点击10,10坐标后延时2000毫秒, 该参数会受zm.SetTap 设置超级点击影响 |
显示日志 | 字符串 | 可选, 输出调试日志信息, 省略默认为"隐藏", 支持 ["显示","显示找到", "显示没找到","隐藏","show", "showfind", "shownofind","hide"] 这几个值 |
输出行号 | 字符串 | 可选, 格式为"_" 开头后跟行号, 比如"_10" 表示第10行代码, 输出调试信息窗口显示第几行代码, 需开启显示日志才有效 |
备注 | 字符串 | 可选, 格式为"@" 开头后跟内容, 比如"@拾取屠龙刀" , 输出调试信息窗口就会增加这条内容, 若连续两个"@@" 则表示在浮窗中显示信息, 需要开启显示日志才有效 |
等待消失 | 数值型 | 可选, 填写-1 禁用或-2 启用, -2 表示找到后或点击后继续查找, 直到找不到或消失超时, 省略默认为-1 , 启用后返回值将有miss 键名, 值为true 时表示成功消失, 值为false 表示未消失 |
消失超时 | 数值型 | 可选, 填写负数 , 表示等待消失的超时时间, 单位毫秒, 注意必须填写负数, 不可填-1 和-2 , 省略默认为-2000 |
参数返回值 | 表 | 可选, 只能传入数组变量名, 用于保存查找结果, 格式与命令返回值相同 |
📤返回
table
, 找到返回结果保存到表中, 格式为{ {id, x, y}, ..., "xy":{id:{ {x,y}, ...}, ...}, "id":{id, ...}, "counts":数量, "miss":miss}
, 没找到或出错返回null
💡示例
Import "zm.luae" //导入插件,只需执行一次
zm.Init //初始化插件,只需执行一次
Dim ret
ret = zm.FindPicEx("紫猫.png|学园.bmp|/sdcard/test.png")
If ret Then
TracePrint "图片找到了, 有以下几种方式遍历找到的坐标"
TracePrint "第1种:遍历数组方法"
For i = 0 to Ubound(ret)
TracePrint "图片序号:", ret(i, 0), " 坐标:", ret(i, 1), ret(i, 2)
Next
TracePrint "第2种:遍历键名"
For Each k , v In ret["xy"]
For Each xy In v
TracePrint "图片序号:", k, " 坐标:", xy[1], xy[2]
Next
Next
TracePrint "第3种:获取指定图片序号的坐标"
If ret["xy"][2] Then
For Each xy In ret["xy"][2]
TracePrint "图片序号2的找到坐标:", xy[1], xy[2]
Next
Else
TracePrint "图片序号2没有找到"
End If
Else
TracePrint "没有找到图片"
End If
📘备注
- 该命令与zm.FindPic 超级找图类似, 区别在于返回内容是找到的所有坐标二维数组
- V3.1831: 加入命令
- V4.2042: 日志参数
showlog
加入["显示找到","显示没找到","showfind","shownofind"]
选项