从零学起之安卓ios手机脚本《按键精灵安卓版找图找色应用》

介绍目前手机按键(按键精灵安卓版/IOS)在编写脚本中,都需要用到哪些方式进行图色识别。
惯例先讲好处:

1、找色,如何计算颜色相似度,解决不同款式手机中画面颜色差异的问题。
2、找图,不太推荐,我们来聊聊多点找色,解决找图缓慢不效率,判断不准确的问题。


科普小技巧:关于多点取色如何获取点阵特征(注意手机按键使用,多点找色取点不宜超过10个),请查看以下帖子
按键精灵(PC版):插件教学之《Color插件的多点找色原理介绍》
从零学起之安卓篇《如何简单获取手机画面导入PC按键抓抓》


正题一:找色,先介绍下手机按键自带的找色命令。


固定坐标获取单点颜色
注解:获取坐标X与Y位置的颜色值信息,返回存入变量col中。

  1. Dim col,x,y
  2. col=GetPixelColor(x,y)
  3. TracePrint "颜色=" & col
复制代码

区域范围查找单点颜色
注解:变量intX, intY需要预先定义。如果您还没有定义该变量,请取消下面一行的注释。
如果没有找到,intX和intY的值都会被置为-1,那么这里我们只需要判断一个值就可以确认是否找到。

  1. Dim intX, intY
  2. FindColor 0, 0, 720, 1280, "0000FF", 0, 0.9, intX, intY
  3. //如果没有找到,intX和intY的值都会被置为-1,那么这里我们只需要判断一个值就可以确认是否找到。
  4. If intX > 0 Then
  5. //如果intX大于0,说明找颜色,IntX与IntY分别表示这颜色的位置坐标
  6. TracePrint "找到颜色,坐标=" & intX & "," & intY
  7. Else
  8. //否则
  9. TracePrint "没找到颜色"
  10. End If
复制代码

要点讲解:如何判断两个颜色相似度,以便解决单点颜色判断上的误差问题,以下提供两个写好的函数模块给大家学习。


函数名称:IsCol
函数功能:通过计算16进制颜色值中的RGB平均差值,得出两个颜色值相似度是否到达对应百分比
函数参数:
参数1:字符串型,16进制颜色值
参数2:字符串型,16进制颜色值
参数3:整数型,相似度
返回值:True 或 False(符合或不符合)
函数范例:

  1. '判断两个16进制值相似度是否到达对应百分比
  2. Function IsCol(col1,col2,n)
  3. IsCol=False
  4. Dim r1,g1,b1
  5. Dim r2,g2,b2
  6. ColorToRGB col1,r1,g1,b1
  7. ColorToRGB col2,r2,g2,b2
  8. If 1 - (Abs(r1 - r2) + Abs(g1 - g2) + Abs(b1 - b2)) / 255 / 3 >= n Then IsCol=True
  9. End Function
复制代码

函数名称:CmpCol
函数功能:获取固定坐标点16进制颜色值,传入IsCol函数进行相似度对比,得出两个颜色值相似度是否到达对应百分比
函数参数:
参数1:整数型,屏幕X坐标
参数2:整数型,屏幕Y坐标
参数3:字符串型,16进制颜色值
返回值:True 或 False(符合或不符合)

  1. '固定坐标单点模糊找色
  2. Function CmpCol(x,y,col,n)
  3. CmpCol=False
  4. If x < 0 or y < 0 Then Exit Function
  5. Dim temp_col
  6. temp_col=GetPixelColor(x,y)
  7. If temp_col=col Then
  8. CmpCol=True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值