韓衛(wèi)國,邢永昌,陳 健
(1. 91404部隊(duì),河北 秦皇島066001;2. 中國船舶重工集團(tuán)公司第七二四研究所, 南京 211153)
一種基于位圖的字庫產(chǎn)生與字符顯示的方法
韓衛(wèi)國1,邢永昌2,陳 健2
(1. 91404部隊(duì),河北 秦皇島066001;2. 中國船舶重工集團(tuán)公司第七二四研究所, 南京 211153)
針對可以顯示位圖或控制像素點(diǎn)顯示的任何操作系統(tǒng),提出一種基于位圖的字符顯示控制方法。通過試驗(yàn)驗(yàn)證,該方法在保證整個(gè)系統(tǒng)實(shí)時(shí)性、可靠性的前提下,實(shí)現(xiàn)了任意字符的顯示與控制功能。
字符顯示;字庫文件;位圖;字符編號
現(xiàn)在電子設(shè)備中人機(jī)交互越來越多,其中字符顯示具有直觀明了、便于理解的特點(diǎn),是電子設(shè)備人機(jī)交互的重要手段之一。
然而,由于軟硬件平臺的限制或其他原因, 經(jīng)常導(dǎo)致僅能顯示最基本的拉丁字母,不能顯示漢字和其他字符,或根本沒有字符顯示功能等情況,使工程設(shè)計(jì)人員很難實(shí)現(xiàn)理想字符的顯示。本文提出一種基于位圖的字庫產(chǎn)生與字符顯示控制的方法。該方法在僅能控制顯示像素點(diǎn)的應(yīng)用平臺上即可實(shí)現(xiàn)各種字體、各種大小漢字,甚至其他自己意造字符的顯示。
其實(shí)現(xiàn)方法由三部分組成:位圖字庫的產(chǎn)生、讀取字庫數(shù)據(jù)和顯示字符內(nèi)容。
根據(jù)字符的字體、字型、大小、顏色、效果、字寬、字高等條件要求選取漢字字段產(chǎn)生相應(yīng)漢字字符圖形信息。字符的圖形信息為需要顯示的像素采用1表示,需要透明或采用某種底色顯示的像素采用0表示。把圖形信息按照矩陣方式存儲起來形成需要的字庫。該字庫的地址信息可以采用標(biāo)準(zhǔn)地址作相應(yīng)的平移,以便添加或減少字符集。
字符的讀取是通過讀取字庫按照存儲地址作對應(yīng)平移后即可以與輸入法輸入每個(gè)漢字的代碼對應(yīng)起來。這樣就可以與任意輸入法對接,根據(jù)輸入法輸入的每個(gè)字符及其對應(yīng)條件就可以在字庫中查找到對應(yīng)的字符字庫數(shù)據(jù)。
字符的顯示可以通過讀取的字庫信息根據(jù)查找算法獲取每個(gè)漢字對應(yīng)的矩陣。通過字庫建立算法的逆獲取對應(yīng)的位圖信息,根據(jù)位圖把對應(yīng)字節(jié)按照指定位置和對應(yīng)顏色顯示出來,即可以實(shí)現(xiàn)漢字的顯示[1]。連續(xù)顯示多個(gè)漢字就可以顯示漢字串,即一串漢字或一段漢字。
2.1 字庫的產(chǎn)生
顯示具體的字符首先必須有對應(yīng)的字庫,然后才能從中提取字符的數(shù)據(jù)進(jìn)行顯示。字庫的產(chǎn)生是根據(jù)字符的字體、大小,采用對應(yīng)的產(chǎn)生字符位圖信息的方法,按照字符編號順序,生成每個(gè)字符對應(yīng)的位圖。字符對應(yīng)的位圖采用矩陣的方法設(shè)計(jì)存儲數(shù)據(jù),采用容易讀寫的格式存儲每個(gè)字符的位圖信息。根據(jù)字符的大小和字體產(chǎn)生對應(yīng)的字庫文件,以供字符顯示功能模塊調(diào)用。字符編號根據(jù)國家標(biāo)準(zhǔn)編號確定。不同的應(yīng)用環(huán)境對字庫的容量大小要求也不同。字庫的容量由字符編號段來定的,可以根據(jù)需要僅僅產(chǎn)生某種字體的字庫,或只產(chǎn)生某一段字符的字庫[2]。產(chǎn)生漢字字庫文件的邏輯流程圖如圖1所示。
圖1 產(chǎn)生字庫的邏輯流程圖
2.2 字符數(shù)據(jù)的獲取
字符數(shù)據(jù)的獲取方法是:首先根據(jù)字符的字體、大小和類型計(jì)算字庫的地址段;輸入法輸出每個(gè)字符均是一個(gè)16位的二進(jìn)制代碼,即每個(gè)字符均有一個(gè)唯一的代碼與之對應(yīng),該代碼即是操作員輸入電腦中每個(gè)字符的表示形式。然后,根據(jù)輸入法輸出的字符代碼獲取通過字庫中字符位置的偏移量和位置碼的取數(shù)段計(jì)算字符在字庫中的具體地址(即地址偏移地址)。按照字符的特征獲取字符的庫信息。根據(jù)在字庫中字符的存儲格式把字符的存儲數(shù)據(jù)轉(zhuǎn)化成位圖信息。提取出該位圖信息,供漢字顯示用。
2.3 字符的顯示
漢字的位圖信息是根據(jù)矩陣方式采用0/1表示出來的,其中“1”表示需要采用指定的字符顏色顯示, “0”需要采用背景顏色顯示或透明顯示。
根據(jù)需要可以選擇宋體字、黑體字、仿宋等各種字體;每種字體內(nèi)部還可以分為24×24點(diǎn)陣、16×16點(diǎn)陣和12×12點(diǎn)陣等多種大小。
針對每種大小的類型字符均設(shè)計(jì)一個(gè)字符輸出函數(shù)。每種字型均需要根據(jù)其邊界值獲取位圖信息并顯示出來。如針對一個(gè)宋體24×24點(diǎn)陣類型的字符需要通過24×24各點(diǎn)信息表示,這里采用24×24÷8個(gè)八位的無符號字符型數(shù)表示,需要輸出24行點(diǎn)陣顯示,每一行需要針對3個(gè)無符號字符型數(shù)輸出其位圖信息[3]。
漢字位置的設(shè)置需要根據(jù)該漢字的位置信息、字體寬度和高度、字間距等信息設(shè)置。顯示字符串或一段漢字還需要計(jì)算字間距、行間距、行寬,并計(jì)算字符平移、換行和新一行起始等位置信息。
試驗(yàn)環(huán)境為:Intel PC104 ARM3720模塊采用 INTEL XSCALE PXA270 中央處理器,128MB內(nèi)存,WinCE4.0操作系統(tǒng)??梢圆捎脠D片作為背景也可以設(shè)置背景顏色。漢字可以設(shè)置字體、大小、顏色、背景顏色、背景圖片等,與常用輸入法有標(biāo)準(zhǔn)接口。采用圖片作為背景的顯示效果如圖2所示,采用某種顏色作為背景顯示效果如圖3所示。
圖2 采用圖片作為背景的顯示效果圖
圖3 采用某種顏色作為背景的顯示效果圖
通過以上試驗(yàn)驗(yàn)證,本文算法在不影響系統(tǒng)的正常運(yùn)行情況下,不僅能實(shí)現(xiàn)漢字的顯示,而且可以與主流輸入法無縫對接,可以解決某些系統(tǒng)不能顯示漢字或其他字符的問題。通過擴(kuò)充字庫該方法可以顯示任意字符或圖形。
[1] 馬莉,殷曉春. Vega環(huán)境下一種漢字字符顯示方法[J].指揮信息系統(tǒng)與技術(shù),2011(1).
[2] 聶孝亮,王國良,馬孝尊,汪連棟. Vega環(huán)境下字符顯示的實(shí)現(xiàn)方法[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2004(1).
[3] 朱明. 一種視頻字符顯示的新方法[J]. 光學(xué)精密工程, 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
韓衛(wèi)國(1965-),男,高級工程師,研究方向:雷達(dá)試驗(yàn)與測量技術(shù);邢永昌(1977-),男,高級工程師,碩士,研究方向: 顯控與數(shù)據(jù)融合;陳健(1980-),男,工程師,研究方向:雷達(dá)顯示控制。
TP311.1
A
1009-0401(2014)01-0062-03