马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
按键精灵的图色命令功能非常强大, 有找图/找色/找字/比色等等各个不同功能的命令, 但是当大家遇到使用相关图色命令却返回找不到或得到坐标不正确, 对比不成功等情况的时候, 往往会一头雾水, 想不通如何解决这个问题.
出现这种问题的本质原因在于画面上的图色数据, 跟你自己写的图色数据不一致, 导致按键精灵给你返回结果是失败, 对比不成功. 然而这样的返回信息太过于单调, 就简单的告诉你找不到或一个其他坐标, 并没有告诉你到底哪里不一致.
所以我们要从这里入手, 当按键精灵图色找不到的时候, 我们让按键精灵把它查找的这部分图色画面展示给我们看, 然后我们自己用眼睛去对比下这部分的图色数据跟我们写的图色数据到底哪里不一样, 具体方法如下.
找不到图片/找不到文字/找不到颜色等查找返回坐标的命令
- 使用Plugin.Pic.PrintScreen()截图命令还原按键精灵查找时候的现场画面, 建议只截取查找范围部分的画面.
- 如果你是用按键自带的找图命令查找附件图片的, 请见2014.05版附件找图BUG情况
- 如果是用大漠插件查找的, 可以用dm.CapturePre()截取查看现场画面.
- 抓抓加载图片打开
- 根据找图找色代码命令设置的范围去选取抓抓上截图的范围.
- 对比两者图色数据是否一致, 分析为什么找不到图色或找到坐标不正确.
- 如果是找图命令看不出图片区别的话, 直接追加一张查找图片数据.
- 也可以考虑限时循环查找, 提供准确率
代码例子如下:
[按键精灵] 纯文本查看 复制代码 FindPic 0,0,1024,768,"Attachment:\神盾.bmp",0.9,intX,intY
If intX > -1 Then
TracePrint "找到坐标是" & intX & "," & intY
//如果坐标不正确, 也用截图命令来分析
Else
TracePrint "没找到"
Call Plugin.Pic.PrintScreen(0, 0, 1024, 768, "C:\找图现场.bmp")
//用抓抓加载图片对比分析
End If
[按键精灵] 纯文本查看 复制代码
//省略大漠注册创建对象等代码
//必须开启图色调试才能使用CapturePre()
dm.EnableDisplayDebug 1 //必须要写在所有图色命令之前
dm_ret = dm.FindPic(0,0,2000,2000,"1.bmp|2.bmp|3.bmp","000000",0.9,0,intX,intY)
If intX >= 0 and intY >= 0 Then
MessageBox "找到" & intX & "," & intY
Else
TracePrint "没找到"
dm_ret = dm.CapturePre("screen.bmp")
//用抓抓加载图片对比分析
End If
比色不一致等对比固定坐标命令
- 用GetPixelColor()之类的获取颜色命令来输出查看指定坐标点的颜色是什么颜色.
- 分析获取到的颜色跟我们代码写的颜色有什么区别, 思考为什么会有不一样的.
- 如果找不到不一致的原因, 那么使用Plugin.Pic.PrintScreen()截图命令截取画面.
- 用抓抓加载图片打开
- 找到我们写的坐标点, 对比这个点的颜色跟我们写的颜色不一样的地方, 并分析原因.
- 一般是颜色比色太早或者太晚导致的, 加点延时就可以解决, 如果是色差问题, 多加几个颜色数据即可解决
代码例子如下:
[按键精灵] 纯文本查看 复制代码 Dim c
IfColor x,y,"FFFFFF",0 Then
//颜色一样
Else
//颜色不一样
TracePrint GetPixelColor(x, y)
End If
|