• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

返回列表 12345678» / 71
发新话题 回复该主题

[技术交流] 【院刊】-【201506期】看了这个你别告诉我还不会找字 [复制链接]

1#
本帖最后由 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命令代码
  1. Call 注册大漠
  2. dm.SetDict(0, "dm_soft.txt")//设置字库文件,把这个字库文件编号为0
  3. //找字命令,在范围内找到“僵尸”这个字符的位置
  4. dm_ret = dm.FindStr(0,0,2000,2000,"僵尸","ffffff-000000",1.0,intX,intY)
  5. If intX >= 0 and intY >= 0 Then
  6. TracePrint "找到字符,坐标为" & x & "," & y
  7. End If

  8. Sub 注册大漠() //注册大漠
  9. Set ws = createobject("Wscript.Shell")
  10. ws.run "regsvr32 atl.dll /s"
  11. Set ws = nothing
  12. PutAttachment "G:\test", "*.*"
  13. PutAttachment ".\Plugin" ,"RegDll.dll"
  14. call Plugin.RegDll.Reg ( "G:\test\dm.dll")
  15. Set dm = createobject("dm.dmsoft")
  16. ver = dm.ver()
  17. If len(ver) = 0 Then
  18. MessageBox "插件注册失败,检查系统是否禁用了vbs脚本权限"
  19. EndScript
  20. End If
  21. End Sub
复制代码
OCR 命令代码
  1. Call 注册大漠
  2. dm.SetDict(0, "dm_soft.txt")//设置字库文件,把这个字库文件编号为0
  3. //找字命令,在范围内,根据ffffff 这个颜色输出能够识别到的字符
  4. dm_ret = dm.Ocr(0,0,2000,2000,"ffffff-000000",1.0)
  5. TracePrint "找到的字符为:" & dm_ret

  6. Sub 注册大漠() //注册大漠
  7. Set ws = createobject("Wscript.Shell")
  8. ws.run "regsvr32 atl.dll /s"
  9. Set ws = nothing
  10. PutAttachment "G:\test", "*.*"
  11. PutAttachment ".\Plugin" ,"RegDll.dll"
  12. call Plugin.RegDll.Reg ( "G:\test\dm.dll")
  13. Set dm = createobject("dm.dmsoft")
  14. ver = dm.ver()
  15. If len(ver) = 0 Then
  16. MessageBox "插件注册失败,检查系统是否禁用了vbs脚本权限"
  17. EndScript
  18. End If
  19. End Sub
复制代码
这次是给大家介绍了大漠的制作字库找字的基础的方法和操作的步骤。希望对于初学大漠的童鞋有帮助。

在下一篇院刊当中,会给大家介绍下关于制作字库找字的进阶的用法。让大家能够更灵活的去应用找字的功能。



院刊目录
showtopic.aspx?topicid=549014&forumpage=1&page=1



 



谢谢大家阅读,记得给小编送支花花 ! 顺手点个


[tr=rgb(143, 188, 143)]

按键精灵交流群

腾讯课堂视频课程

按键学院交流①群(1群已满):376122403
按键学院交流②群(2群):372671254
按键学院交流③群(3群):170084238
安卓按键精灵交流群:115768679

按键精灵2014基础教学视频
Q语言零基础知识
按键精灵自动化脚本功能开发
按键精灵Q语言脚本开发
点我进入按键学院报名啦 招生细节进群咨询招生办主任





    已有2评分我要评分查看所有评分

    2#

    过后

    3#

    学习!!!!!!!!!!!!!

    4#

    无无无无无无

    5#

    这个你别告诉我还不会找字修改

    6#

    看一下

    7#

    xuexixuexi

    8#


    9#

    死死死死死死死死死死死死死死死死

    10#

    顶顶顶,学到了好东西。66666

    11#

    顶顶顶顶顶顶顶顶顶顶顶顶

    12#

    看啊看

    13#

    haodongxi yiding yao biaoji xuexi

    14#

    看看怎么制作

    15#

    看看怎么做

    16#

    从V型走vzvzvazaf11

    17#

    学习中~

    18#

    kkkkkkkkkkkkkkkk

    19#

    前来学习 谢谢

    20#

    学习学习

    发新话题 回复该主题