GetPixelColor
命令名称 | GetPixelColor |
命令功能 | 获取指定点颜色 |
命令参数 | x:整数型,屏幕x坐标 y:整数型,屏幕y坐标 type:浮点型,返回类型,可省略,默认为0 注意:返回类型为0时:颜色值是16进制,格式为”BBGGRR”,不为0时:颜色值是10进制数值 |
返回值 | 此点的颜色值 |
这个命令比较简单粗暴, 就是用来获取一个固定坐标点的颜色值
注意一点: 在按键精灵上使用的颜色格式都是为BGR格式, 如果是从其他的软件上获取到颜色信息的话一定要记得转换下, 否则颜色值会不正确. 比如按键精灵上获取到的颜色信息是 D97700 那就要转换成 0077D9 这样的RGB格式才行.
范例:
- Dim rColor
- rColor = GetPixelColor(300, 300,0)
- TracePrint “300, 300这个点的颜色为:”&rColor
复制代码
我们可以利用这个命令来模仿一个简单的多点比色功能:
- Dim rColor
- rColor = GetPixelColor(365,301,0)
- If rColor = “397202” Then
- rColor = GetPixelColor(254,279, 0)
- If rColor = “D97700” Then
- rColor = GetPixelColor(218,299, 0)
- If rColor = “CFBD25” Then
- TracePrint “三个点颜色都正确”
- End if
- End if
- End If
复制代码
FindColor
命令名称 | FindColor |
命令功能 | 在指定区域内查找指定的颜色 |
命令参数 | 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 265,238,384,324,”123456-000000″,0,0.9,intX,intY
- If intX >-1 then
- Traceprint “找到”
- Else
- Traceprint “没有找到”
- End If
- //范围找多色
- 返回值=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 开始)
其中查找方向参数代表这让按键从什么方向开始查找这个屏幕
0 代表从左上到右下查找 就表示先从左到右, 然后从上到下的方向 ( 如图 )
CmpColorEx
命令名称 | CmpColorEx |
命令功能 | 同时比较指定的多个坐标点的颜色,支持多色、偏色、相似度比较 |
命令参数 | mul_color:字符串,需要对比的点xy坐标和16进制颜色,格式为(X坐标|Y坐标|16进制颜色), 多个颜色用“|”号分隔,需要偏色用“-”号分隔,多个点信息用“,”号分隔, 比如”100|200|FFFFFF|123456-000000,300|500|FFFFFF” sim:双精度浮点数,相似度,取值范围0-1 |
返回值 | 整数型:返回0代表没找到,返回1代表找到 |
多点比色和多点找色都是在安卓按键里非常常用的找色命令.
|
范例:
- If CmpColorEx(“177|276|FDD01E,199|249|FFFFFF,205|280|0202C9”, 0.9) = 1 Then
- TracePrint “特征找到”
- Else
- TracePrint “特征没找到”
- End If
复制代码
“177|276|FDD01E” 颜色特征字符串里前两个177|276 代表这坐标(177,276) ,”FDD01E” 代表该点的颜色. 这段特征串就是表示每个坐标上对应的颜色是否一致, 一致的话就返回1 否则就返回0
FindMultiColor
命令名称 | FindMultiColor |
命令功能 | 根据指定的多点查找颜色坐标 |
命令参数 | 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 145,237,229,319, “FCCF1D”,”18|-28|FFFFFF,24|3|0202C9″, 0, 0.9, intX, intY
- If intX > -1 And intY > -1 Then
- TracePrint intX
- TracePrint intY
- End If
复制代码
“FCCF1D”,”18|-28|FFFFFF,24|3|0202C9″ 颜色特征串中 “FCCF1D” 这个表示要找的第一个点的颜色. “18|-28|FFFFFF,24|3|0202C9” 后面这表示根据找到的第一个点的坐标进行偏移.
比如找到第一个颜色点为FCCF1D的坐标是100,200 , 那它后面18|-28|FFFFFF 的表示的意思就是 (100+18,200-28) 这个坐标的颜色是否是FFFFFF
本站所有文章,如无特殊说明或标注,均为本站原创发布。
任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。