大沙漠插件字库原理介绍.docVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大沙漠插件字库原理介绍

首先说明下大漠综合工具制作字库的过程和原理 1.截取你所需要的图片 2.点击你所需要字的颜色 3.点击提取点阵 4.输入字符 按回车生成字库 具体的原理我不好说,但是就我的理解是:对图片中不符合指定颜色的部分去除掉,然后二值化获取点阵,点阵也就是这些颜色的分布规律,二值化就是黑白两色,RGB格式中黑色000000白色ffffff 由于我的脚本在别人电脑上运行的时候经常失效,今天改成16位色后我机器上运行也失效了,而我这个脚本主要采用的就是大漠插件的找字功能,我以为是机器间的色偏造成的,一直想法子算色偏,但是我失败了。 后来我想起论坛上有个帖子专门讲过同色系的RGB格式中R值是不变的(不好意思忘了作者了,在这里致谢) 于是我就在大漠综合工具的色偏处输入了00ffff结果是在16位色环境下,大漠综合工具中二值化区域内的字显示的跟我在32位色环境下做的一模一样,接着我提取点阵,制作字库,进行调试,命令格式如下: dm_ret =dm.FindStr(0,0,978,585, 码, ffd463-00ffff, 1.0, x1, y1) If x1 = 0 Then? ? ? MessageBox x1 y1 End If 准确的弹出了x,y的坐标值 接着我换32位色做同样的调试,显示结果与16位色下相同,我测了坐标正好是我要找的字的左上角 经多次测试发现这个方法中字色的R值必须为FF或00(至于F1,01等未测试,有兴趣的朋友可以试试) 庆幸啊以后找字可以不考虑偏色了 呵呵 再说了考虑我也不会算 具体原理我也不是很懂,但是我估计应该是:我比较了点阵中R值相同的所有点,取得符合二值化点阵区域内所有的点造成的 再次提醒 此方法只适合R值为00,FF的 其他位置相同的未测试 当然这么做效率是低了点,但是在我看来脚本应该是:稳定性通用性执行效率,毕竟脚本也是你编写的一种软件吗 鲜花,银币在哪 拿来啊 呵呵 简单说下后台操作的方法,先判断该窗口是否支持后台,用下面的语句: Hwnd=Plugin.Window.Foreground() Hwmd=Plugin.Window.GetkeyFocusWnd() If Hwmd0 then Messagebox 可以 Else Messagebox 不可以 End if 然后把下面的放在脚本开头 Hwnd=Plugin.Window.Foreground() Hwnd=Plugin.Window.GetkeyFocusWnd() //下面接自己的代码 首先后台一点是要有句柄、这个很简单 第一步我们先打开抓抓,接着点击句柄 接着把鼠标移到你所要后台的窗口上,按下F8 是否看见当前窗口句柄那里出现一串数字? 把它复制下来 第二步我们点击图像,在指定窗口句柄那里打钩 接着把数字复制进去 按下抓图键(Print Screen SysRq) 是否只看见你要后台的的图像呢? 对着你所需要的坐标按右键加入点1 记住坐标 然后加入到后台鼠标点击里面就行了 第三步我们在后台命令中找到鼠标指向窗口点击插入 命令是Hwnd = Plugin.Window.MousePoint() 第四步我们要进行后台鼠标点击或者后台输入键盘 命令是Call Plugin.Bkgnd.LeftClick(Hwnd, 0, 0) 在按键看了很多教程关于多开...的我看了后回味,似乎都是单线程的,往往新手会问,难道不能让精灵同事做2件事情吗?新手问的其实是问:按键可以多线程后台吗?由此我突然奇想且试验成功.且次试验可将任何的单开后台变为多开后台脚本.如有愚昧的地方指指教了.? 作业: 设计一个在记事本上后台打字1的循环代码 要求:能循环多开 Hwnd = Plugin.Window.MousePoint() rem a Call Plugin.Bkgnd.KeyPress(Hwnd, 49) Delay 500 goto a 注:8.0写的 如只有7的同学 自己翻译 不太难的 回复后能见教程 本帖隐藏的内容需要回复才可以浏览 第一步:将禁止脚本重复运行 选为否(在是否循环的下面) 第二步:设置启动热键为F2(以免与记事本热键冲突) 第三步:保存退出(或选调试) 第四步:打开第一个记事本文件,鼠标指中按F2,此时可看见 后台打的111出现 最小化 第五步:打开第二个记事本文件,鼠标指中按F2,此时可看见 后台打的111出现 最小化 ........ 此时你如果将多个记事本都打开 看 他们都在干活呢-------可以无限后台多开-多线程的哦 总结:第一步很关键. 启示:如果我做的打1的脚本换成打怪的呢? 第1步:什么是后台插件及命令 首先我们要明白什么是后台插件以及后台命令,在编辑窗口找到全部命令,找到窗口插件(建议大家可

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档