怎样利用点阵转换字库.docVIP

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

怎样使用点阵字库(转) 前不久,在网上看到一个生成点阵字的网站.觉得很有意思! 到底什么是点阵字,点阵字和字模之间有什么关系? 让我们先看一个点阵汉字和一个英文字母: 这就是点阵字,也就是根据字符的字模用符号画出来的,当然你可以把*号#号改成其它的任何符号都可以. 是不是觉得很有意思了? 汉字内码: 我们都知道,英文只有少数的几十个字符,在计算机中用一个字节可以很容易的表示出来(也就是ASCII码);而汉字由于结构本身的原因,数量很大,常用的也有几千个.显然计算机中按照英文字符的方式对处理汉字是不可取的. 由是前人们就将ASCII表的高128位很少用到的数值以两个为一组来表示汉字,这就是汉字的内码.而剩下的低128位则留给英文字符使用,即英文的内码. 看一个C程序示例: 程序代码 main ( ) unsigned char * s , * e = A , * c = 王 ; clrscr ( ) ; printf ( English char = ) ; s = e ; while ( * s ! = 0 ) printf ( =, , * s ) ; s + + ; printf ( \nChinease char= ) ; s = c ; while ( * s ! = 0 ) printf ( =, , * s ) ; s + + ; getch ( ) ; 编译运行以后,输出的结果为: English char = 65, Chinease char= 205,245, 查ASCII码字符表,很容易得到A的ASCII码为65. 我们可以查ASCII码表,得到出ASCII码对应的字符,那我们有什么办法来知道一个汉字内码对应的汉字了? 让我们先来认识一下区位码: 1981 年5月,我国国家标准总局颁布了《信息交换用汉字编码字符集》(GB2312-80),简称国家标准汉字编码,也叫国标码.国标码共收进标准字符7445 个.其中一级汉字3755个,二级汉字3008个,共计6763个汉字. 由于汉字的字符多,一个字节(即8位二进制代码)不足以表示所有的常用汉字.汉字国标码的每个汉字或符号在计算机中都使用2个字节(16位二进制)代码来 表示. 在GB2312-80代码表中,纵向分为0~93,共94行.将行号称为区号,列号称为位号,分别有94个区和94个位.区号和位号用十进 制表示,不足两位前面补0.这样每个汉字或符号都可用4位十进制表示.这就是我们常说的区位码.每一区共有94个汉字,而位记录该汉字在该区中的具体位 置.(记得我们以前读书的时候,报考计算机考试,填写姓名都要我们用区位码填,我们都拿着自己的姓名一个个去查,我们查的那个东东就是区位码.现在想想, 真是心寒呀.还好,我后来就没有查了,弄了个excel的宏.把班上人的姓名全部放到一个excel中,然后一点鼠标,哈哈…… 区位码全自动出来了). 现在我们知道,可以从区位码得到汉字,也可以从汉字反查出区位码.那么我们如何从内码得到区位吗? 汉字内码与区位码之间有一个简单的数学关系: 内码高字节 = 区码+A0H = 区码+160 内码低字节 = 位码+A0H = 区码+160 这个转换关系,我也不清楚原因,有谁知道还望指点.网上的大师们说这样转换,咱们就这样转换吧. 我们刚刚输出王的内码为:205(高字节),245(低字节).由上面的换算关系,可以得到王字的区位码为: 区码=205-160=45 位码=245-160=85 查一下区位码表,4585所表示的汉字正好是王. 也可以打开输入法,选择内码输入法,然后选择区位码,输入4585,就会输出王字. 汉字字模: 现在让我们来认识一下什么是字模,所谓字模就是是汉字(或者字符)的形态.字模中保存了汉字的点阵信息,记录组成一个字符的点在何处显示,在何处不显示.我们只要得到汉字的字模,我们就可以很容易的程序来控制,把这个字符画出来. 我们刚刚得到的仅仅是汉字的内码,并根据汉字内码得到区位码,由区位码查表得到汉字.那么我们如何来得到汉字的字模了? 用 过UCDOS(或者CCDOS,估计现在只有少数人还知道UCDOS是什么东东)的人应该知道,通过UCDOS可以让DOS系统下正确的显示中文目录.不 通过UCDOS之类的软件,在纯DOS下,我们看到的中文目录会是一堆的乱码,而英文目录能够正确显示,这是什么原因了. 这是因为,英文的字模信 息是一般固化在ROM里.中文字模信息一般记录在一个专门的文件中,这个文件在UCDOS和CCDOS中都有,文件名是HZK16.也就是16x16点阵 的汉字字模信息,所谓16x16,就是说这个汉字在横向有16个点,和纵向16个点的区域里显示.还有24x24,32x32等. 我们也可以在UCDOS下找到英文字模的信

文档评论(0)

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

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

1亿VIP精品文档

相关文档