字模提取转换原理源码

时间:2014-08-23 11:14:21
【文件属性】:

文件名称:字模提取转换原理源码

文件大小:3.16MB

文件格式:RAR

更新时间:2014-08-23 11:14:21

字模

// 汉字字模提取的基本原理 // 如同画点画线一样 ,汉字是经过电脑画出来的。这样,就必须 // 为每一个字准备一个数组 , 这就是“ 字模 ” 。字模分为点阵和矢量 // 两种 ,我们常用的是点阵字模 ,一般有 1 6 x1 6和 2 4 x 2 4两种 , // 分别称为16点阵字和24点阵字 。它们的原理是依据点阵中的 0和 l // 把汉字画出来 ( 即 0表示不画点 , 1表示 画点) 。本文以16点阵的 // 汉字显示为例, 因此需访问UCDOS中的字库文件 HZK1 6 。 HZK16 // 的内容是按照字节存放的 ,即把 1 6 x1 6个“ 位” 变成 32个“ 字节 ” // 来存放 。另外 ,每个汉字在字库中有唯一的区位码与之对应 , 根据 // 汉字的机内码可以确定其区位码及其在字库中的起始位置,就可以从字库中 // 取出汉字字模 。具体步骤如下 : // 根据汉字的机内码 推算 出区位码 : // 区码= 机内码 高字节一 A0 H (因为汉字编码是从0xa0区开始的,所以文件最前面就是从0xa0区开始,要算出相对区码) // 位码= 机内码 底字节一 A0 H // 根据 区位码计算出汉字在字库中的偏移量( 即汉字在字库中的位置 ) : // 偏移量 L = [ ( 区码一 1 ) x 94 + ( 位码一 1 ) ] x 32 // 从该偏移地址中读取32字节(16*16位)或者128字节(32*32位),就是相关字符的点阵字模代码. // 1、区码减1是因为数组是以0为开始而区号位号是以1为开始的 // // 2、(94*(区号-1)+位号-1)是一个汉字字模占用的字节数 // // 3、最后乘以32是因为汉字库文应从该位置起的32字节信息记录该字的字模信息 // // 4、94为区位码94*94的方阵;32为从偏移地址中读取32字节(16*16位)


【文件预览】:
CHARACTER
----ASC16(4KB)
----CHARACTER.rc(6KB)
----StdAfx.cpp(211B)
----CHARACTERDlg.h(2KB)
----HZK16(261KB)
----CHARACTER.cpp(2KB)
----CHARACTER.dsw(541B)
----CHARACTER.h(1KB)
----CHARACTER.plg(1KB)
----CHARACTERDlg.cpp(12KB)
----CHARACTER.clw(1KB)
----Debug()
--------CHARACTERDlg.sbr(0B)
--------vc60.pdb(356KB)
--------CHARACTER.obj(14KB)
--------vc60.idb(201KB)
--------CHARACTER.pdb(353KB)
--------CHARACTER.sbr(0B)
--------CHARACTER.exe(112KB)
--------CHARACTER.ilk(370KB)
--------StdAfx.obj(103KB)
--------CHARACTER.bsc(3MB)
--------CHARACTERDlg.obj(36KB)
--------CHARACTER.pch(5.25MB)
--------CHARACTER.res(3KB)
--------StdAfx.sbr(1.31MB)
----ReadMe.txt(4KB)
----StdAfx.h(1KB)
----CHARACTER.opt(51KB)
----CHARACTER.APS(35KB)
----CHARACTER.dsp(4KB)
----CHARACTER.ncb(57KB)
----Resource.h(917B)
----res()
--------CHARACTER.rc2(401B)
--------CHARACTER.ico(1KB)

网友评论

  • 资料学习了!谢谢分享。
  • 还可以吧。不过没有用到
  • 是基于HZK16字库做的,原理讲得很明白,声明一下for循环中的i就可以了。只是觉得要6个下载积分,太多了。
  • 这个源码能给我思想上的引导,非常好
  • 很使用,谢谢分享
  • 很好 思路清晰
  • java是否可以实现的...
  • 画龙点睛,整体来说资源可以,就是分值有点高!
  • 虽然软件有缺陷,但是有注释,有源码,给人自己修改的空间,非常欣赏,支持
  • 还可以吧,可以参考下