按键精灵手机助手的基本命令——颜色命令 | 信义之树

按键精灵手机助手的基本命令——颜色命令

2020年07月09日 星期四 14:36:30 按键精灵 6,467 次 0
命令名称: CmpColor 对比指定点颜色
命令功能: 比较指定坐标点的颜色,支持多色、偏色、相似度比较
语法格式: CmpColor(x,y,color,sim)
参数说明:
x:整数型,需要对比颜色的X坐标
y:整数型,需要对比颜色的Y坐标
color:字符串,待比较的16进制颜色,格式为"BBGGRR",多个颜色用“|”号分隔,
支持偏色,比如"FFFFFF-101010|123456"
sim:双精度浮点数,相似度,取值范围0-1
返回值: 整数型:返回匹配的颜色序号,从0开始索引.如果全部不相等则返回-1
脚本例子:

Dim 是否相等
是否相等 = CmpColor(100,200,"FFFFFF|00FF00-101010",0.9)
If 是否相等 > -1 Then
TracePrint "匹配颜色的序号为:"&是否相等
Else
TracePrint "没有匹配的颜色"
End If
备注:
偏色是微调,指对RBG三色分别确定取色范围
相似度是粗调,指对颜色整体做百分比判断
命令名称: CmpColorEx 对比多个点颜色
命令功能: 同时比较指定的多个坐标点的颜色,支持多色、偏色、相似度比较
语法格式: CmpColorEx(mul_color,sim)
参数说明:
mul_color:字符串,需要对比的点xy坐标和16进制颜色,格式为(X坐标|Y坐标|16进制颜色),
多个颜色用“|”号分隔,需要偏色用“-”号分隔,多个点信息用“,”号分隔,
比如"100|200|FFFFFF|123456-000000,300|500|FFFFFF"
sim:双精度浮点数,相似度,取值范围0-1
返回值: 整数型:返回0代表没找到,返回1代表找到
脚本例子:

If CmpColorEx("300|500|FFFFFF|123456-102030,305|505|FFFFFF",0.9) = 1 Then
TracePrint "全部点颜色相等"
Else
TracePrint "有一个或多个颜色不符合"
End If
备注:
偏色是微调,指对RBG三色分别确定取色范围
相似度是粗调,指对颜色整体做百分比判断
命令名称: ColorDiff 获取俩个颜色BGR差值之和
命令功能: 求两个颜色的红、绿、蓝三个分量的差值之总和
语法格式: ColorDiff(color1,color2)
参数说明:
color1:16进制颜色,格式为"BBGGRR",或者10进制颜色
color2:16进制颜色,格式为"BBGGRR",或者10进制颜色
返回值: 整数型:两个颜色的红、绿、蓝三个分量的差值之总和
脚本例子:

Dim 颜色差值
颜色差值 = ColorDiff("FFFFFF", 123456)
TracePrint "两个颜色差值为:" & 颜色差值
备注:
返回值常用于计算颜色相似度上
命令名称: ColorToRGB 分解颜色成RGB
命令功能: 把颜色分解为红、绿、蓝三个分量
语法格式: ColorToRGB(color,r,g,b)
参数说明:
color:颜色值可以为16进制字符串,格式为"BBGGRR",也可以为十进制
r:整数型,十进制颜色红分量
g:整数型,十进制颜色绿分量
b:整数型,十进制颜色蓝分量
返回值: 无,结果保存在变参指针中
脚本例子:

Dim r,g,b
ColorToRGB("FF00AA",r,g,b)
TracePrint r,g,b
备注:
RGB三分量常用于计算颜色相似度上
命令名称: EnableFastCapture 开启快速截图取色模式
命令功能: 开启快速截图取色模式,提高相关图色函数效率
语法格式: EnableFastCapture(BOOL)
参数说明:
布尔型,True为开启,False为关闭
返回值: 布尔型,True为开启成功,False为开启失败
脚本例子:

Dim t
//用于计算时间
t = TickCount()
For i = 1 To 100
//如果这里不TracePrint,时间还会缩短不少
TracePrint GetPixelColor(100, 100)
Next
TracePrint TickCount() - t

//以下是开启快速截图模式的测试例子,请自行测试效果,对照时间
Dim result
//开启快速截图模式,如果在Android 4.2以上,会返回FALSE,表示打开失败
result = EnableFastCapture(true)
TracePrint result
//用于计算时间
t = TickCount()
For i = 1 To 100
//如果这里不TracePrint,时间还会缩短不少
TracePrint GetPixelColor(100, 100)
Next
TracePrint TickCount() - t

备注:
该命令仅在低于安卓4.2系统内有效,原理是找图找色时,只截取指定范围图片,提高效率
命令名称: FindColor 寻找颜色
命令功能: 在指定区域内查找指定的颜色
语法格式: FindColor(x1, y1, x2, y2, color,dir,sim,intX,intY)
参数说明:
x1:整数型,区域左上角x坐标
y1:整数型,区域左上角y坐标
x2:整数型,区域右下角x坐标
y2:整数型,区域右下角y坐标
color 字符串:要对比的16进制颜色,格式为"BBGGRR"多个颜色用“|”号分隔,
如果需要对比偏色则中间用“-”号分隔,比如"FFFFFF|123456-000000|00FF00-101010"
sim 双精度浮点数:相似度,取值范围0-1
dir:整数型,查找方向
0: 表示从左上向右下;
1: 表示从中心往四周查找;
2: 表示从右下向左上查找;
3: 表示从左下向右上查找;
4:表示从右上向左下查找
intX:变参指针,返回X坐标
intY:变参指针,返回Y坐标
返回值: 整数型:返回找到的颜色的序号,从0开始索引.没找到返回-1
脚本例子:

Dim IntX,IntY
FindColor 0,0,0,0,"123456-000000|aabbcc-030303|ddeeff-202020",0,1.0,intX,intY
If intX >-1 then
Traceprint "找到"
Else
Traceprint "没有找到"
End If

Dim intX, intY,返回值
返回值=FindColor(0, 0, 0, 0, "0000FF-101010|FFFFFF-000000|FF00FF",0, 0.9, intX, intY)
'当需要函数返回值时需要加括号

If 返回值 > -1 Then
TracePrint "找到的颜色序号为"&返回值&",坐标在"&intX&","&intY
Else
TracePrint "全部没找到"
End If

备注:
当区域范围均为0时,表示全屏查找颜色
偏色是微调,指对RBG三色分别确定取色范围
相似度是粗调,指对颜色整体做百分比判断
命令名称: FindMultiColor 多点找色
命令功能: 根据指定的多点查找颜色坐标
语法格式: FindMultiColor x1,y1,x2,y2,first_color,offset_color,dir,sim,intX,intY
参数说明:
x1:整数型,查找区域左上X坐标
y1:整数型,查找区域左上Y坐标
x2:整数型,查找区域右下X坐标
y2:整数型,查找区域右下Y坐标
first_color:要对比的16进制颜色,多个颜色用"|"号分隔,
如果需要对比偏色则中间用“-”号分隔,比如"FFFFFF|123456-000000|00FF00-101010"
sim:双精度浮点数,相似度,取值范围0-1
offset_color:字符串,偏移颜色
dir:整数型,查找方向.
0:表示从左上向右下查找;
1:表示从中心往四周查找;
2:表示从右下向左上查找;
3:表示从左下向右上查找;
4:表示从右上向左下查找;
intX:变参指针,返回找到的X坐标
intY:变参指针,返回找到的Y坐标
color:字符串,16进制颜色值,格式为"BBGGRR"
返回值:
脚本例子:

Dim IntX,IntY
FindMultiColor 0,0,0,0,"FFFFFF","4|1|2F9772-000000|123456-101010,3|7|378757",0,0.9,intX,intY
If intX > -1 Then
TracePrint "找到啦,坐标在"&intX&","&intY
Else
TracePrint "没找到"
End If
备注:
当区域范围均为0时,表示全屏查找颜色
偏色是微调,指对RBG三色分别确定取色范围
相似度是粗调,指对颜色整体做百分比判断
命令名称: GetColorNum 获取区域颜色数量
命令功能: 获取指定区域的颜色数量,支持偏色、多色、相似度
语法格式: GetColorNum(x1,y1,x2,y2,color,sim)
参数说明:
x1:整数型,区域左上X坐标
y1:整数型,区域左上Y坐标
x2:整数型,区域右下X坐标
y2:整数型,区域右下Y坐标
color:字符串,要找的16进制颜色,格式为"BBGGRR",多个颜色用“|”号分隔,支持偏色,
比如"FFFFFF-000000|123456"
sim:双精度浮点数,相似度,取值范围0-1
返回值: 整数型:返回找到的颜色数量
脚本例子:

Dim 颜色数量
颜色数量 = GetColorNum(26,20,31,26,"FFFFFF|123456-000000",1.0)
TracePrint "找到的颜色数量有" & 颜色数量 & "个"
备注:
偏色是微调,指对RBG三色分别确定取色范围
相似度是粗调,指对颜色整体做百分比判断
命令名称: GetPixelColor 获取指定点颜色
命令功能: 得到某点的颜色
语法格式: GetPixelColor(x,y[,type])
参数说明:
x:整数型,屏幕x坐标
y:整数型,屏幕y坐标
type:浮点型,返回类型,可省略,默认为0
注意:返回类型为0时:颜色值是16进制,格式为"BBGGRR",不为0时:颜色值是10进制数值
返回值: 此点的颜色值
脚本例子:

Dim rColor
rColor = GetPixelColor(300, 300,0)
TracePrint "这个点的颜色为:"&rColor
备注:
要根据返回类型参数来确定返回值的数据类型
命令名称: RGB 合并颜色
命令功能: 返回代表RGB颜色值的整数
语法格式: RGB(red,green,blue)
参数说明:
red:0到255间的整数,代表颜色中的红色成分
green:0到255间的整数,代表颜色中的绿色成分
blue:0到255间的整数,代表颜色中的蓝色成分
返回值: 10进制颜色值
脚本例子:

Dim Col
Col = RGB(1,1,0)
Traceprint Col
备注:
返回值常用于计算颜色相似度上