大家好,欢迎来到IT知识分享网。
金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想制作脚本和学习按键精灵的朋友可以添加按键精灵学习交流群: 学习路上不再孤单,金猪脚本伴你一同成长.
在安卓按键上编写脚本时,相对使用多点找色来说,使用找图的命令会更加的轻松。因为找图只要把要找的图片接取下来保存,丢到附件里就能用了,但是多点找色就会麻烦,还需要一个个的仔细的去取点,如果取的点不好还会影响之后的找色。但是找图命令一直困扰大家的问题就是多分辨率适配的问题,所以今天就给大家介绍下使用找图命令来实现多分辨率适配的小技巧
准备工作
找图命令
命令名称FindPic命令功能查找指定的图片,支持多图、偏色、相似度查找,支持查找透明图,只返回第一个找到的坐标命令参数x1:整数型,查找区域左上X坐标
y1:整数型,查找区域左上Y坐标
x2:整数型,查找区域右下X坐标
y2:整数型,查找区域右下Y坐标
pic_name:字符串,要找的图片名字,多个图片用“|”号分隔
delta_color:16进制字符串,偏色
sim:双精度浮点数,相似度,取值范围0-1
dir:整数型,查找方向:
0:表示从左上向右下查找;
1:表示从中心往四周查找;
2:表示从右下向左上查找;
3:表示从左下向右上查找;
4:表示从右上向左下查找;
intX:变参指针,返回找到的X坐标
intY:变参指针,返回找到的Y坐标
返回值返回找到的图片的序号,从0开始索引.如果没找到返回-1
截取特征图
可以在电脑上使用安卓模拟器,设置成不同的分辨率,然后把每个分辨率下的特征图片分别截取下来保存
因为在不同分辨率下图片的像素点数量和间隔是不同的,所以无法直接通过比例的计算来准确转换,即使能转换成功率也比较低。所以需要在不同分辨率下分别截取特征图保存
编写找图函数
一般正常的多分辨率找图思路是这样的:
先把特征图片进行重命名,同一个特征在名称上加上一些编号之类的标记来区分,比如要找图标,那图标的不同分辨率下的图片会命名成:_1、_2、_3以便区分
按照这种思路来写代码的话就是这样的
- If w = 480 and h = 854 Then
- If Pic_FindPic(0, 0, 0, 0, _1.png) Then
- TracePrint “找到图标”
- Else
- TracePrint “没找到图标”
- End If
- ElseIf w = 720 and h = 1280 Then
- If Pic_FindPic(0, 0, 0, 0, _2.png) Then
- TracePrint “找到图标”
- Else
- TracePrint “没找到图标”
- End If
- ElseIf w = 1080 and h = 1920 Then
- .
- .
- .
- .
- End If
- Function Pic_FindPic(x, y, x1, y1, pic)
- Dim intX, intY
- FindPic x, y, x1, y1, “Attachment:” & pic ,”000000″,0, 0.8, intX, intY
- If intX > -1 Then
- Pic_FindPic = True
- Else
- Pic_FindPic = False
- End If
- End Function
复制代码
要找一个图片的话,还需要先判断当前的分辨率,然后根据不同的分辨率来选择找不同的图片。
这样如果要想适配多分辨率,那写出来的代码就太长了,这也是很多同学放弃使用找图的原因。
接下来我就给大家普及下找图的灵活用法,可以让这种多分辨率找图的代码成倍的缩短
找图的灵活用法
首先我们需要对截取下来的特征图片进行一些不同的命名处理。命名的格式是这样的:图片名称+分辨率。 比如480*854分辨率下的特征图可以命名为:特征.png
这样做的好处就是好便于管理,同时也是下面这种找图代码中的核心设置
- Dim w = GetScreenX,h = GetScreenY
- ‘把横坐标和纵坐标连接起来
- Dim winxy = w & h
- Do
- If Pic_FindPic(0, 0, 0, 0, 特征1) Then
- ElseIf Pic_FindPic(0, 0, 0, 0, 特征2) Then
- ElseIf Pic_FindPic(0, 0, 0, 0, 特征3) Then
- End If
- Loop
- Function Pic_FindPic(x, y, x1, y1, pic)
- Dim intX, intY
- FindPic x, y, x1, y1, “Attachment:” & pic & winxy & “.png” ,”000000″,0, 0.8, intX, intY
- If intX > -1 Then
- Pic_FindPic = True
- Else
- Pic_FindPic = False
- End If
- End Function
复制代码
简单的改动下找图的函数,就可以让整体的代码大幅度的精简,同时也不用再多去判断不同分辨率下要用哪套找图代码了。这种技巧的好处就在于不用多余的去判断不同分辨率下要调用哪套找图,可以直接把图片名称传入函数即可。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/85148.html