点阵字库制作和使用(三)

汉字点阵位图

一、汉字表示

         一个汉字由两个扩展 ASCII 码组成,第一个扩展 ASCII 码用来存放区码,第二个扩展 ASCII 码用来存放位码.在 GB2312-80 标准中,将所有的汉字分为94个区,每个区有94个位可以存放94个汉字,形成了人们常说的区位码,这样总共就有 94*94=8836 个汉字.在点阵字库中,汉字点阵数据就是按照这个区位的顺序来存放的,也就是最先存放的是第一个区的汉字点阵数据,在每一个区中有是按照位的顺序来存放 的.在汉字的内码中,汉字区位码的存放实在扩展 ASCII 基础上存放的,并且将区码和位码都加上了32,然后存放在两个扩展 ASCII 码中.具体的说就是:

    第一个扩展ASCII码 = 128+32 + 汉字区码

    第二个扩展ASCII吗 = 128+32 + 汉字位码

    如果用char hz[2]来表示一个汉字,那么我可以计算出这个汉字的区位码为:

    区码 = hz[0] - 128 - 32 = hz[0] - 160

    位码 = hz[1] - 128 - 32 = hz[1] - 160.

    这样,我们可以根据区位码在文件中进行殉职了,寻址公式如下:

    汉字点阵数据在字库文件中的偏移 = ((区码-1) * 94 + 位码) * 一个点阵字模占用的字节数

二、汉字制作

 

你可能感兴趣的:(linux)