Find.Img 找图

文章目录
  1. 1. 功能
  2. 2. 语法
  3. 3. 参数
  4. 4. 返回值
  5. 5. 示例
  6. 6. 备注

功能

优化官方找图命令。

语法

结果 = Find.Img([x1,y1,x2,y2,]图片[,属性表])

参数

参数 数据类型 解释
x1 数值型 可选参数,表示找图范围左上角x坐标,省略默认为0,即全屏找色。
y1 数值型 可选参数,表示找图范围左上角y坐标,省略默认为0,即全屏找色。
x2 数值型 可选参数,表示找图范围右下角x坐标,省略默认为0,即全屏找色。
y2 数值型 可选参数,表示找图范围右下角y坐标,省略默认为0,即全屏找色。
图片 字符串 待查找的图片名,多个图片用“|”隔开,如”图片1.png|图片2.png”,如果想改图片的路径去属性表中改动imgpath。
属性表 可选参数,用于设置找图模式,格式为{“属性名”:”属性值”,…},详见下方表。
属性名 数据类型 可选值列表 默认值 作用
dir 整数型 取值0到8 0 找图方向
sim 数值型 取值0到1之间 0.9 相似度,越高越相似
click 布尔型 任意值 False 注意非False和Null为真, 如果找到比色结果,是否点击第一个颜色点坐标
print 数值型,字符串型 任意值 “” 注意非False为真,当为真时输出此值(不支持数组型和布尔型),否则不输出内容;为调试输出
pcol 字符串型 十六进制颜色 “202020” 找图偏色
imgpath 字符串型 图片路径 “Attachment:” 找图路径

返回值

数值型 ,返回找到的图片序号,从0开始索引,没找到返回-1,坐标保存在 Find.SetReturn() 设置的数组中。

示例

例子1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
'前三行代码必须在开头定义好,而且必须要有的
Import "Find.lua"
Dim XYA()
Call Find.SetReturn(XYA)

If Find.Img("登陆.png") > -1 Then
'XYA这里的值为:坐标X,坐标Y,找图的索引
TracePrint "全屏找到登陆界面,点击","全屏找图的返回坐标为:",Join(XYA,", ")
'这里面XYA数组里面的元素值被函数Find.Img 改变成了坐标值
Tap XYA(0), XYA(1)
Else
'这里的值为 -1,-1,-1
TracePrint "没有找到登陆界面",Join(XYA,", ")
End If
例子2
1
2
3
4
5
6
7
8
'前三行代码必须在开头定义好,而且必须要有的
Import "Find.lua"
Dim XYA()
Call Find.SetReturn(XYA)

'例子1与例子2实现的效果相同,只是代码精简了
Call Find.Img("登陆.png", {"click":True})
TracePrint "全屏找图返回的坐标情况",Join(XYA,", ")
例子3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'前三行代码必须在开头定义好,而且必须要有的
Import "Find.lua"
Dim XYA()
Call Find.SetReturn(XYA)

'全屏查找[登陆.png]图片,方向为1(同等 FindPic 里面的向方,从中心向四周查找),sim是相似度为0.8,pcol是找图编色,imgpath是设备找图的绝对路径为临时目录
If Find.Img("登陆.png", {"dir":1,"sim":0.8,"pcol":"050505","imgpath":GetTempDir()}) > -1 Then
'XYA这里的值为:坐标X,坐标Y,找图的索引
TracePrint "全屏找到登陆界面,点击","找图的返回坐标为:",Join(XYA,", ")
'这里面XYA数组里面的元素值被函数Find.Img 改变成了坐标值
Tap XYA(0), XYA(1)
Else
'这里的值为 -1,-1,-1
TracePrint "没有找到登陆界面",Join(XYA,", ")
End If
例子4
1
2
3
4
5
6
7
8
'前三行代码必须在开头定义好,而且必须要有的
Import "Find.lua"
Dim XYA()
Call Find.SetReturn(XYA)

'例子3与例子4实现的效果相同,只是代码精简了
Call Find.Img("登陆.png", {"click":True,"dir":1,"sim":0.8,"pcol":"050505","imgpath":GetTempDir()})
TracePrint "全屏找图返回的坐标情况",Join(XYA,", ")
例子5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'前三行代码必须在开头定义好,而且必须要有的
Import "Find.lua"
Dim XYA()
Call Find.SetReturn(XYA)

'在范围为100,100,200,300内找查图片[登陆.png]
If Find.Img(100,100,200,300,"登陆.png") > -1 Then
'XYA这里的值为:坐标X,坐标Y,找图的索引
TracePrint "范围内找到登陆界面,点击","范围内找图的返回坐标为:",Join(XYA,", ")
'这里面XYA数组里面的元素值被函数Find.Img 改变成了坐标值
Tap XYA(0), XYA(1)
Else
'这里的值为 -1,-1,-1
TracePrint "没有找到登陆界面",Join(XYA,", ")
End If

备注

  • 找到的坐标和索引的值赋值到 Find.SetReturn 设置坐标返回值 设置的数组中
  • 使用本插件的三步骤(前三行代码)是
    • 第一行 : Import “Find.lua”
    • 第二行 : Dim XYA()
    • 第三行 : Call Find.SetReturn(XYA)
  • 在导入插件后,必须先定义返回坐标数组,并用 Find.SetReturn 设置坐标返回值 设置返回坐标数组