韓衛國,邢永昌,陳 健
(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操作系統??梢圆捎脠D片作為背景也可以設置背景顏色。漢字可以設置字體、大小、顏色、背景顏色、背景圖片等,與常用輸入法有標準接口。采用圖片作為背景的顯示效果如圖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