新闻中心

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

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

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

本文引用地址://m.amcfsurvey.com/article/257996.htm
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号宋体字库文件中的点阵信息表:



该指针指向点阵信息表的首地址,并被点阵描述结构直接调用。

字库文件的最后定义了点阵属性表,该表规定了整个点阵字库的属性以及字模和间距,并定义点阵指针。

4 结 语

嵌入式平台下采用点阵,使得战场信息、态势、指令等获得了中文显示。最终使设计开发的不仅具有良好的可靠性和卓越的实时性,同时具有直观而方便的中文平台以及友好的交互能力,大大提升了整体作战效能。

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭