描述一个汉字点阵信息的二进制代码串称为汉字的“字模”。所有汉字和各种符号的点阵信息就组成汉字的“字模库”(简称字库)。字模的表示顺序为:先从左到右,再从上到下。也就是先画第一行左上方的8个点,再是右上方的8个点,然后是第二行左边8个点,右边8个点,以此类推。
三、汉字的显示原理
1. 从键盘输入的汉字经过键盘管理模块,变换成机内码。
2. 然后经字模检索程序,查到机内码对应的点阵信息在字模库的地址。
3. 从字库中检索出该汉字点阵信息。
4. 利用显示驱动程序将这些信息送到显示卡的显示缓冲存储器中。
5. 显示器的控制器把点阵信息整屏顺次读出,并使每一个二进制位与屏幕的一个点位相对应,就可以将汉字字形在屏幕上显示出来。
四、用区位码获取汉字的点阵信息
以16×16的点阵汉字库文件为例。一个汉字用了256个点共32个字节表示。汉字共分94区,每个区有94位汉字。机内码用两个字节表示,第一个字节存储区号(qh),为了和ASCII码相区别,范围从十六进制的A1H开始(小于80H地为ASCII码字符),对应区码的第一区;第二个字节是位号(wh),范围也从A1H开始,对应某区中的第一个位码。这样,将汉字机内码减去A0A0H就得到该汉字的区位码。
从而可以得到汉字在字库中的具体位置:
location=(94*(qh-1) + wh-1) * 一个汉字字模占用的字节数
对于16×16的点阵汉字库,汉字在字库中的具体位置的计算公式就是:(94*(qh-1)+wh-1)*32。例如,“房”的机内码为十六进制的B7BF,则其区位码是B7BFH-A0A0H=171FH,转化为十进制就是2331,在汉字库中的位置就是32*[94*(23-1)+(31-1)]=67136字节以后的32个字节为“房”的显示点阵。