×

如何使用C语言显示USDOS汉字库的详细资料说明

消耗积分:1 | 格式:pdf | 大小:0.18 MB | 2019-04-23

分享资料个

  最近重新找了一下C语言的资料,深深的被c语言的底层操作特性迷恋~。在这方面,最经典的一本书莫过于清华大学出版社的《C高级实用程序设计》(王士元),在C语言高级应用领域里这是我见过的写的最好的一本书,非常可惜的这本书现在已经绝版了(可能是因为技术发展和更新的太快),在书店里网上都无法买到了。记得本科时期经常借同学的这本书来读,爱不释手,里面的知识极具魅力,即使今天看起来仍让我觉得不是过时,而是回味无穷。这里提到的字库文件和操作系统都已经属于古董级别了,现在可能也很难找到了。这种应用在现在时代也很少有人研究了,但我想在单片机等嵌入式系统的点阵式汉字显示屏中仍然在使用。

  在这里我参考了一些资料中的用C语言显示汉字字库的资料。在计算机发展的早期,为了支持显示汉字,国内发明了相应的2个字节表示的汉字国标(GB)码,根据这个编码规则,汉字分为94个区,每区94个汉字,汉字在其所在区内的位置用位号表示,两个字节分别表示区号和位号,为了区分ASCII码,每个字节的首位都被置为1。在网络传输时还有特定的区分方法,这里不细述这些细节了。在国际编码中,中国汉字被分配到第16区(起始区号0x0F)。为了显示汉字,需要汉字字形文件(字库)的支持。在DOS时代,出现了USDOS系统,有HZK16(16*16字形),HZK24(24*24字形)等字库文件,本质上一个汉字字符是一个二值图像(即bpp=1),所以本质上是一种图形字体(非矢量的),例如HZK16,每个字是16*16像素,每个像素占1位(1/8byte),因此每个汉字在文件中占据了16*16/8=32 bytes/汉字。HZK24每个汉字占据24*24/8=72 bytes/汉字。由于采用了这些约定,所以文件中没有任何文件头等附加描述信息,而全部是紧密排列的像素字形点阵,文件从第一个字节开始第一个字符一直到最后一个字符结束,文件也没有后缀名。字形在文件中是紧密排列的,但是需要注意的2点重要问题是:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !