|
分享源码
界面截图: |
|
是否带模块: |
纯源码 |
备注说明: |
- |
本帖最后由 wh78845069 于 2023-5-14 11:30 编辑
因为经常用按键精灵,就尝试了能不能使用易语言代码实现模糊判断颜色的逻辑
理论上就是通过系统截图单个像素点,然后读取字节集。
经过测试,原版按键精灵为RGB每个数值+-50,当变动超过50时,判定为失败。
根据原按键精灵函数接口定义了参数,使用的的文本型十六进制代码
网上有很多图色模块但是几乎都是不开源的,这个是实现原理,有兴趣的可以一起交流。
|
判断指定点颜色 | 逻辑型 | | |
X坐标 | 整数型 | | | | Y坐标 | 整数型 | | | | 给定颜色 | 文本型 | | | | 判断模式 | 整数型 | | | | 判断精度 | 逻辑型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 位置矩阵 | 矩形数据 | | | 取得数据 | 字节集 | | | R值 | 整数型 | | | G值 | 整数型 | | | B值 | 整数型 | | | 取得颜色代码 | 文本型 | | | R值给定 | 整数型 | | | G值给定 | 整数型 | | | B值给定 | 整数型 | | | 返回值 | 逻辑型 | | |
位置矩阵.左边 = X坐标 位置矩阵.右边 = X坐标 + 1 位置矩阵.顶边 = Y坐标 位置矩阵.底边 = Y坐标 + 1 取得数据 = 截取屏幕区域 (位置矩阵, 2, )R值 = 取字节集数据 (取得数据, 1, 57 )G值 = 取字节集数据 (取得数据, 1, 56 )B值 = 取字节集数据 (取得数据, 1, 55 ) 如果真 (判断模式 = 0 或 判断模式 = 1 )如果 (B值 < 16 )取得颜色代码 = “0” + 取十六进制文本 (B值 )取得颜色代码 = 取十六进制文本 (B值 )如果 (G值 < 16 )取得颜色代码 = 取得颜色代码 + “0” + 取十六进制文本 (G值 )取得颜色代码 = 取得颜色代码 + 取十六进制文本 (G值 )如果 (B值 < 16 )取得颜色代码 = 取得颜色代码 + “0” + 取十六进制文本 (R值 )取得颜色代码 = 取得颜色代码 + 取十六进制文本 (R值 )返回值 = 假 如果真 (判断模式 = 0 且 取得颜色代码 = 给定颜色 ) 返回值 = 真 如果真 (判断模式 = 1 且 取得颜色代码 ≠ 给定颜色 ) 返回值 = 真 如果真 (判断模式 = 2 )R值给定 = (寻找文本 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 取文本中间 (给定颜色, 5, 1 ), , 真) - 1 ) × 16 + 寻找文本 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 取文本中间 (给定颜色, 6, 1 ), , 真) - 1 G值给定 = (寻找文本 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 取文本中间 (给定颜色, 3, 1 ), , 真) - 1 ) × 16 + 寻找文本 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 取文本中间 (给定颜色, 4, 1 ), , 真) - 1 B值给定 = (寻找文本 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 取文本中间 (给定颜色, 1, 1 ), , 真) - 1 ) × 16 + 寻找文本 (“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 取文本中间 (给定颜色, 2, 1 ), , 真) - 1 如果 (取绝对值 (R值给定 - R值 ) ≤ 50 且 取绝对值 (G值给定 - G值 ) ≤ 50 且 取绝对值 (B值给定 - B值 ) ≤ 50 )返回值 = 真 返回值 = 假 返回 (返回值)
|
评分
-
查看全部评分
|