韩卫国,邢永昌,陈 健
(1. 91404部队,河北 秦皇岛066001;2. 中国船舶重工集团公司第七二四研究所, 南京 211153)
一种基于位图的字库产生与字符显示的方法
韩卫国1,邢永昌2,陈 健2
(1. 91404部队,河北 秦皇岛066001;2. 中国船舶重工集团公司第七二四研究所, 南京 211153)
针对可以显示位图或控制像素点显示的任何操作系统,提出一种基于位图的字符显示控制方法。通过试验验证,该方法在保证整个系统实时性、可靠性的前提下,实现了任意字符的显示与控制功能。
字符显示;字库文件;位图;字符编号
现在电子设备中人机交互越来越多,其中字符显示具有直观明了、便于理解的特点,是电子设备人机交互的重要手段之一。
然而,由于软硬件平台的限制或其他原因, 经常导致仅能显示最基本的拉丁字母,不能显示汉字和其他字符,或根本没有字符显示功能等情况,使工程设计人员很难实现理想字符的显示。本文提出一种基于位图的字库产生与字符显示控制的方法。该方法在仅能控制显示像素点的应用平台上即可实现各种字体、各种大小汉字,甚至其他自己意造字符的显示。
其实现方法由三部分组成:位图字库的产生、读取字库数据和显示字符内容。
根据字符的字体、字型、大小、颜色、效果、字宽、字高等条件要求选取汉字字段产生相应汉字字符图形信息。字符的图形信息为需要显示的像素采用1表示,需要透明或采用某种底色显示的像素采用0表示。把图形信息按照矩阵方式存储起来形成需要的字库。该字库的地址信息可以采用标准地址作相应的平移,以便添加或减少字符集。
字符的读取是通过读取字库按照存储地址作对应平移后即可以与输入法输入每个汉字的代码对应起来。这样就可以与任意输入法对接,根据输入法输入的每个字符及其对应条件就可以在字库中查找到对应的字符字库数据。
字符的显示可以通过读取的字库信息根据查找算法获取每个汉字对应的矩阵。通过字库建立算法的逆获取对应的位图信息,根据位图把对应字节按照指定位置和对应颜色显示出来,即可以实现汉字的显示[1]。连续显示多个汉字就可以显示汉字串,即一串汉字或一段汉字。
2.1 字库的产生
显示具体的字符首先必须有对应的字库,然后才能从中提取字符的数据进行显示。字库的产生是根据字符的字体、大小,采用对应的产生字符位图信息的方法,按照字符编号顺序,生成每个字符对应的位图。字符对应的位图采用矩阵的方法设计存储数据,采用容易读写的格式存储每个字符的位图信息。根据字符的大小和字体产生对应的字库文件,以供字符显示功能模块调用。字符编号根据国家标准编号确定。不同的应用环境对字库的容量大小要求也不同。字库的容量由字符编号段来定的,可以根据需要仅仅产生某种字体的字库,或只产生某一段字符的字库[2]。产生汉字字库文件的逻辑流程图如图1所示。
图1 产生字库的逻辑流程图
2.2 字符数据的获取
字符数据的获取方法是:首先根据字符的字体、大小和类型计算字库的地址段;输入法输出每个字符均是一个16位的二进制代码,即每个字符均有一个唯一的代码与之对应,该代码即是操作员输入电脑中每个字符的表示形式。然后,根据输入法输出的字符代码获取通过字库中字符位置的偏移量和位置码的取数段计算字符在字库中的具体地址(即地址偏移地址)。按照字符的特征获取字符的库信息。根据在字库中字符的存储格式把字符的存储数据转化成位图信息。提取出该位图信息,供汉字显示用。
2.3 字符的显示
汉字的位图信息是根据矩阵方式采用0/1表示出来的,其中“1”表示需要采用指定的字符颜色显示, “0”需要采用背景颜色显示或透明显示。
根据需要可以选择宋体字、黑体字、仿宋等各种字体;每种字体内部还可以分为24×24点阵、16×16点阵和12×12点阵等多种大小。
针对每种大小的类型字符均设计一个字符输出函数。每种字型均需要根据其边界值获取位图信息并显示出来。如针对一个宋体24×24点阵类型的字符需要通过24×24各点信息表示,这里采用24×24÷8个八位的无符号字符型数表示,需要输出24行点阵显示,每一行需要针对3个无符号字符型数输出其位图信息[3]。
汉字位置的设置需要根据该汉字的位置信息、字体宽度和高度、字间距等信息设置。显示字符串或一段汉字还需要计算字间距、行间距、行宽,并计算字符平移、换行和新一行起始等位置信息。
试验环境为:Intel PC104 ARM3720模块采用 INTEL XSCALE PXA270 中央处理器,128MB内存,WinCE4.0操作系统。可以采用图片作为背景也可以设置背景颜色。汉字可以设置字体、大小、颜色、背景颜色、背景图片等,与常用输入法有标准接口。采用图片作为背景的显示效果如图2所示,采用某种颜色作为背景显示效果如图3所示。
图2 采用图片作为背景的显示效果图
图3 采用某种颜色作为背景的显示效果图
通过以上试验验证,本文算法在不影响系统的正常运行情况下,不仅能实现汉字的显示,而且可以与主流输入法无缝对接,可以解决某些系统不能显示汉字或其他字符的问题。通过扩充字库该方法可以显示任意字符或图形。
[1] 马莉,殷晓春. Vega环境下一种汉字字符显示方法[J].指挥信息系统与技术,2011(1).
[2] 聂孝亮,王国良,马孝尊,汪连栋. Vega环境下字符显示的实现方法[J]. 计算机系统应用, 2004(1).
[3] 朱明. 一种视频字符显示的新方法[J]. 光学精密工程, 1996(1).
A method of bitmap-based word library generation and character display
HAN Wei-guo1, XING Yong-chang2, CHEN Jian2
(1.Unit 91404 of the Chinese PLA Navy, Qinhuangdao 066001, China;2.No. 724 Research Institute of CSIC, Nanjing 211153)
A character display and control method based on the bitmap is proposed for any operating systems that can display the bitmap or control the pixel display. The test verifies that on the premise of ensuring the reliability and real-time of the overall system, the display and control of arbitrary characters are realized.
character display; word library file; bitmap; character No.
2013-10-19;
2013-11-05
韩卫国(1965-),男,高级工程师,研究方向:雷达试验与测量技术;邢永昌(1977-),男,高级工程师,硕士,研究方向: 显控与数据融合;陈健(1980-),男,工程师,研究方向:雷达显示控制。
TP311.1
A
1009-0401(2014)01-0062-03