本帖最后由 quitout 于 2015-6-10 19:07 编辑 制作大漠字库
本文由按键学院提供技术支持
按键学院交流①群(1群已满):376122403
按键学院交流②群(2群):372671254
按键学院交流③群(3群):170084238
许多童鞋在写脚本的时候时常会遇到需要识别字符的情况,这种字符的出现往往是有包含了比较复杂的背景色。如果是使用找图的方式去找的话,那就需要先把字符截图下来,然后对图片进行透明图处理,才能成功的使用找图方式查找。 这种方法有很大的弊端,一方面如果要找的字符比较多的话,需要每张图都需要慢慢处理,工作量大,另一方面,这种方法只能用来识别固定顺序的字符,如果字符排列顺序变化的话就无法识别了。 今天小编就给大家介绍下使用大漠插件快速找字的方法 |
按键精灵本身的插件命令里就有包含了找字的命令。(
还不知道的童鞋赶快去看这里,下载最新的按键精灵插件:【院刊】-【201501期】新增变速、找字等插件命令!赶紧来下载!)
但是按键精灵本身的找字命令有比较大的缺陷,它只能识别系统自带的字库字体。而大漠插件除了能识别系统字体外也能通过制作字库的方式去识别其他的字体。
PS:什么样的字体才算是系统字体呢?其实打开记事本里的字体设置,里面列出的一大堆都是系统字库本身就包含的字体,这些就是系统字体。有一些游戏它显示出来的文字并不是直接利用系统字库生成的,而是有自己的一套字库,这种字体往往都是有加了特效,以及形状有改变。
系统字库字体:- 您所在的用户组无法下载或查看附件
游戏自带字体:- 您所在的用户组无法下载或查看附件
- 您所在的用户组无法下载或查看附件
对于系统字体的识别使用按键精灵自带的插件就可以完成了,所以我们这里就不多做介绍了。主要是介绍下使用大漠工具制作的字库的方法
工具准备在制作字库之前需要先下载
大漠综合工具,下载地址:
大漠综合工具下载制作字库打开大漠综合工具,点击红框处的抓图按钮,把需要制作成字库的文字截图下来
- 您所在的用户组无法下载或查看附件
我们这里就先拿个网页游戏的地图名称为例子,做一个地图名称的字库。
1、先把字符部分截图下来,然后就可以在左上角看到刚才截取的图片
2、点击下面的红框处,选择添加上要找的字符的颜色,以及设置好适当的偏色。记得要勾选上后面的勾才能生效
关于设置偏色的方法可以参考之前的一篇院刊:
如何识别渐变色或半透明的文字- 您所在的用户组无法下载或查看附件
PS: 对于偏色的设置,使用偏色计算器是一种比较精确的方法。如果对于偏色要求不需要那么精确的话,可以直接简单的设置成222222 或者333333 这样的范围,都是比较通用的偏色。
3、选择好颜色之后,会在右上方的二值化区域里看到经过了二值化处理的字符信息。然后点击“提取点阵(单个)”按钮就可以把这个点阵信息提取出来
二值化就是把符合颜色像素点转换成白色,其他的像素点全部转换成黑色。
- 您所在的用户组无法下载或查看附件
PS:提取单个就是把识别到的字符信息当成是整个字符保存,如果选择提取多个点阵的话,就可以把字符拆分成多个分别保存成字库
4、在右边的定义文字那里输入这个字符表达的信息,按回车即可完成这个字库的制作了
字库已经制作完成了,按接下来就需要编写代码对它进行识别
设置字库文件做好的字库是自动生成了一个TXT的文本,大漠综合工具默认是生成在工具当前的目录下的。我们可以把这个字库文件添加到按键精灵附件当中,在调用字库的时候先释放出来再使用
找字命令大漠的找字命令有两种,一种是FindStr命令,他是在范围内找到某一个特定的字的坐标;另一种是OCR命令,他是在范围内根据特定的颜色,来找到可以识别到的字符
FindStr命令代码- Call 注册大漠
- dm.SetDict(0, "dm_soft.txt")//设置字库文件,把这个字库文件编号为0
- //找字命令,在范围内找到“僵尸”这个字符的位置
- dm_ret = dm.FindStr(0,0,2000,2000,"僵尸","ffffff-000000",1.0,intX,intY)
- If intX >= 0 and intY >= 0 Then
- TracePrint "找到字符,坐标为" & x & "," & y
- End If
- Sub 注册大漠() //注册大漠
- Set ws = createobject("Wscript.Shell")
- ws.run "regsvr32 atl.dll /s"
- Set ws = nothing
- PutAttachment "G:\test", "*.*"
- PutAttachment ".\Plugin" ,"RegDll.dll"
- call Plugin.RegDll.Reg ( "G:\test\dm.dll")
- Set dm = createobject("dm.dmsoft")
- ver = dm.ver()
- If len(ver) = 0 Then
- MessageBox "插件注册失败,检查系统是否禁用了vbs脚本权限"
- EndScript
- End If
- End Sub
复制代码 OCR 命令代码- Call 注册大漠
- dm.SetDict(0, "dm_soft.txt")//设置字库文件,把这个字库文件编号为0
- //找字命令,在范围内,根据ffffff 这个颜色输出能够识别到的字符
- dm_ret = dm.Ocr(0,0,2000,2000,"ffffff-000000",1.0)
- TracePrint "找到的字符为:" & dm_ret
- Sub 注册大漠() //注册大漠
- Set ws = createobject("Wscript.Shell")
- ws.run "regsvr32 atl.dll /s"
- Set ws = nothing
- PutAttachment "G:\test", "*.*"
- PutAttachment ".\Plugin" ,"RegDll.dll"
- call Plugin.RegDll.Reg ( "G:\test\dm.dll")
- Set dm = createobject("dm.dmsoft")
- ver = dm.ver()
- If len(ver) = 0 Then
- MessageBox "插件注册失败,检查系统是否禁用了vbs脚本权限"
- EndScript
- End If
- End Sub
复制代码这次是给大家介绍了大漠的制作字库找字的基础的方法和操作的步骤。希望对于初学大漠的童鞋有帮助。
在下一篇院刊当中,会给大家介绍下关于制作字库找字的进阶的用法。让大家能够更灵活的去应用找字的功能。
院刊目录showtopic.aspx?topicid=549014&forumpage=1&page=1
谢谢大家阅读,记得给小编送支花花 ! 顺手点个赞