新闻中心

EEPW首页>嵌入式系统>设计应用> 军事指挥系统中VxWorks下汉字显示技术

军事指挥系统中VxWorks下汉字显示技术

作者: 时间:2009-08-07 来源:网络 收藏

2.4 点阵存储结构
国家标准对库结构做了统一规定:字库分为94个区,每个区有94个,每个汉字有确定的区和位编码,用两个字节表示,第一个字节表示汉字所在的区号,第二个字节表示位号,即所谓的区位码。每个汉字在字库中以点阵字模形式存储,一般采用16×16点阵、24×24点阵,每个点用二进制位(0或1)表示,对应在屏幕上出来就是相应的汉字。每个汉字都有惟一的区位码,通过区位码计算出汉字在字库中的位置,从而确定汉字的字模。
点阵汉字字库C语言文件有固定的结构,分为三个部分:点阵属性表、点阵信息描述总表和点阵信息表。点阵属性表用来描述点阵汉字的字符结构和字模结构参数的结构体,包含参数有像素大小、字符名称、字符家族名称等,特别定义了指向点阵信息总表的数组指针,字体驱动程序利用这个指针寻找点阵信息总表。点阵信息描述总表 它是一个存放指向点阵信息表指针的动态数组,其元素个数取决于汉字点阵信息表的个数。
点阵信息表点阵信息表以数组的形式表示,主要用来存储汉字的GB2312码(西文是ASCII码)和详细点阵信息。可以是一个表也可以是若干个表。把汉字按 GB2312编码的页分类,构建多个汉字分表,也可以把中西文装在混合表里做成一个大表,西文字符被扩展成双字节存储。

3 点阵汉字字库实例
自己开发点阵存储、点阵获取、点阵,改造WindML的双字节或单字节函数,使其能判断汉字码,一旦判断出汉字码,则使用自己开发的点阵获取、点阵显示等把汉字显示出来。该方法对点阵的操作更加灵活,适合非标准的点阵算法,或者当开发者已有成熟的点阵操作方法时,把该方法绑接到WindML上。
不必理会WindML双字节编码机制,这里需要的是一个汉字的点阵字库,这个点阵字库不必按照WindML的双字节编码机制进行编码,里面所存储的只是汉字的点阵信息和区位码信息,这个字库可以通过从Windows中导出;由于不选用WindML的双字节编码机制,所以对于中关于如何控制打点以及显示点阵字体驱动,并不需要具体了解;更重要的是拥有更大的灵活性,只需把自己所写的汉字显示函数绑定到WindML上面即可。因此这里必须要求自己写点阵的存储、点阵显示、汉字显示函数。做起来比较简单,只要求了解汉字编码的基本知识,即汉字双字节编码中,高、低字节的最高位都是为‘1’,而西文字符编码中最高位为‘0’,利用这点来判断所要显示的字符是汉字还是英文。
在设计开发过程中,在现有的西文字库的基础上进行修改,添加相应的字体参数和汉字的点阵信息,形成点阵汉字字库文件uflhz12.c,uflhz16.c,uflhz24.c,以分别存储12,16和24号宋体的字库信息。这个过程用Windows编程来实现。
以下是16号宋体字库文件中的点阵信息表:



评论


相关推荐

技术专区

关闭