字模生成原理.docx
2页字模生成原理 字模生成原理 本设计中因为使用汉字的点阵显示,需要提取汉字字模,因此我们首先来了解汉字点阵字模的提取方法 汉字的点阵字模是从点阵字库文件中提取出来的例如常用的16×16点阵HZK16文件,12×12点阵HZK12文件等等,这些文件包括了GB 2312字符集中的所有汉字现在只要弄清汉字点阵在字库文件中的格式,就可以按照自己的意愿去显示汉字了 下面以HZK16文件为例,分析取得汉字点阵字模的方法 HZK16文件是按照GB 2312-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-160 wh=c2-32-128=c2-160 或 qh=c1-0xa0 wh=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=73字节,不过这类大字模汉字库为了打印的方便,将字模都放倒了,所以在显示时要注意把横纵方向颠倒过来就可以了 这样我们就完全清楚了如何得到汉字的点阵字模,这样就可以在程序中随意的显示汉字了 5.7.2 字模提取程序 如果在程序中使用的汉字数目不多,也可以不必总是在程序里带上几百K的字库文件,也 本文来源:网络收集与整理,如有侵权,请联系作者删除,谢谢!第2页 共2页第 2 页 共 2 页第 2 页 共 2 页第 2 页 共 2 页第 2 页 共 2 页第 2 页 共 2 页第 2 页 共 2 页第 2 页 共 2 页第 2 页 共 2 页第 2 页 共 2 页第 2 页 共 2 页。

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


