点阵字模生成原理与方法[3].pdfVIP

  1. 1、本文档共4页,可阅读全部内容。
  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文档。上传文档
查看更多

5.7点阵字模生成原理与方法[3]

5.7.1字模生成原理

本设计中因为使用汉字的点阵显示,需要提取汉字字模,因此我

们首先来了解汉字点阵字模的提取方法。

汉字的点阵字模是从点阵字库文件中提取出来的。例如常用的

16×16点阵HZK16文件,12×12点阵HZK12文件等等,这些文件包

括了GB2312字符集中的所有汉字。现在只要弄清汉字点阵在字库文

件中的格式,就可以按照自己的意愿去显示汉字了。

下面以HZK16文件为例,分析取得汉字点阵字模的方法。

HZK16文件是按照GB2312-80标准,也就是通常所说的国标码

或区位码的标准排列的。国标码分为94个区(Section),每个区94

个位(Position),所以也称为区位码。其中01~09区为符号、数字

区,16~87区为汉字区。而10~15区、88~94区是空白区域。

如何取得汉字的区位码呢?在计算机处理汉字和ASCII字符时,

使每个ASCII字符占用1个字节,而一个汉字占用两个字节,其值称

为汉字的内码。其中第一个字节的值为区号加上32(20H),第二个字

节的值为位号加上32(20H)。为了与ASCII字符区别开,表示汉字的

两个字节的最高位都是1,也就是两个字节的值都又加上了128(80H)。

这样,通过汉字的内码,就可以计算出汉字的区位码。

具体算式如下:

qh=c1-32-128=c1-160wh=c2-32-128=c2-160

qh=c1-0xa0wh=c2-0xa0

qh,wh为汉字的区号和位号,c1,c2为汉字的第一字节和第二字

节。

根据区号和位号可以得到汉字字模在文件中的位置:

location=(94*(qh-1)+(wh-1))*一个点阵字模的字节数。

那么一个点阵字模究竟占用多少字节数呢?我们来分析一下汉

字字模的具体排列方式。

例如下图中显示的“汉”字,使用16×16点阵。字模中每一点

使用一个二进制位(Bit)表示,如果是1,则说明此处有点,若是0,

则说明没有。这样,一个16×16点阵的汉字总共需要16*16/8=32个

字节表示。字模的表示顺序为:先从左到右,再从上到下,也就是先

画左上方的8个点,再是右上方的8个点,然后是第二行左边8个点,

右边8个点,依此类推,画满16×16个点。

对于其它点阵字库文件,则也是使用类似的

方法进行显示。例如HZK12,但是HZK12文件的

格式有些特别,如果你将它的字模当作12*12位

计算的话,根本无法正常显示汉字。因为字库设

计者为了使用的方便,字模每行的位数均补齐为

8的整数倍,于是实际该字库的位长度是16*12,

每个字模大小为24字节,虽然每行都多出了4位,但这4位都是0

(不显示),并不影响显示效果。还有UCDOS下的HZK24S(宋体)、

HZK24K(楷体)或HZK24H(黑体)这些打印字库文件,每个字模占用

24*24/8=72字节,不过这类大字模汉字库为了打印的方便,将字模都

放倒了,所以在显示时要注意把横纵方向颠倒过来就可以了。

这样我们就完全清楚了如何得到汉字的点阵字模,这样就可以在

程序中随意的显示汉字了

您可能关注的文档

文档评论(0)

183****3322 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档