專利名稱:通過一種點(diǎn)陣字庫實(shí)現(xiàn)多種字形大小的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖形系統(tǒng)中文字、字符的處理及顯示技術(shù)領(lǐng)域,特別涉及一種通過一種點(diǎn)陣字庫實(shí)現(xiàn)多種字形大小的方法。
背景技術(shù):
在數(shù)字技術(shù)應(yīng)用領(lǐng)域,文字/字符的顯示功能是所用應(yīng)用中的一項(xiàng)最基礎(chǔ)的功能。目前,處理字符顯示主要有兩種方法一種是使用矢量字庫進(jìn)行字符顯示;另一種是使用點(diǎn)陣字庫進(jìn)行字符顯示。其中,使用矢量字庫的方法,其字形特征編碼,字庫的制作及獲取比較復(fù)雜,字庫所占的存儲(chǔ)空間也比較大;而使用點(diǎn)陣字庫的方法,其一般情況下一種點(diǎn)陣字庫只能繪制、顯示一種大小的字符集。而伴隨數(shù)字技術(shù)的不斷發(fā)展應(yīng)用,許多產(chǎn)品設(shè)備對(duì)文字、字符顯示的要求越來越高。要完成復(fù)雜的、多種變化的字符顯示,要么同時(shí)使用多種點(diǎn)陣字庫,要么使用矢量字庫。如果使用矢量字庫就要增加存儲(chǔ)字庫的空間及使用矢量字庫的成本;同時(shí)使用多種點(diǎn)陣字庫也需要增加存儲(chǔ)空間,并且也不利于字符顯示處理。
新型內(nèi)容為解決上述問題,本發(fā)明的主要目的在于提供一種提高了點(diǎn)陣字庫的使用效率、降低產(chǎn)品成本的通過一種點(diǎn)陣字庫實(shí)現(xiàn)多種字形大小的方法。
為實(shí)現(xiàn)上述目的,本創(chuàng)作的技術(shù)方案為通過一種點(diǎn)陣字庫實(shí)現(xiàn)多種字形大小的方法,其特征在于,包括如下步驟a.在目標(biāo)系統(tǒng)中至少裝載一種常用的點(diǎn)陣字庫數(shù)據(jù),以作為系統(tǒng)中文字、字符顯示的數(shù)據(jù)源和基礎(chǔ);b.在系統(tǒng)動(dòng)態(tài)存儲(chǔ)區(qū)中開辟一個(gè)滿足單個(gè)字符繪制的最大區(qū)域,為字形中間態(tài)區(qū)域;c.通過引用步驟a中字符的字形編碼,將待顯示的字符字形繪制于所述的字形中間態(tài)區(qū)域;d.結(jié)合步驟c中獲取的待顯示字符的字形數(shù)據(jù)構(gòu)成一個(gè)基于動(dòng)態(tài)存儲(chǔ)區(qū)中的圖像數(shù)據(jù),再按照待顯示字符最終顯示的大小,對(duì)字形數(shù)據(jù)進(jìn)行變換,得到待顯示字符的目標(biāo)字形大小數(shù)據(jù);e.將步驟d中處理后的字符字形數(shù)據(jù)結(jié)果輸出于顯示區(qū)中目標(biāo)位置上,即完成一個(gè)字符的顯示;通過重復(fù)使用字形中間態(tài)區(qū)域,按上述過程便可以完成系統(tǒng)內(nèi)文字、字符串的逐個(gè)顯示。
相較于現(xiàn)有技術(shù),本發(fā)明一種點(diǎn)陣字庫實(shí)現(xiàn)多種字形大小的方法通過裝載點(diǎn)陣字庫、準(zhǔn)備字形中間態(tài)區(qū)域、繪制字形、變換字形、目標(biāo)字形輸出五個(gè)步驟,利用已經(jīng)使用的點(diǎn)陣字庫,在有限的范圍內(nèi)達(dá)到一種字庫繪制、顯示出多種字形大小的功能,不僅提高了點(diǎn)陣字庫的使用效率,同時(shí)也降低了產(chǎn)品成本,提高了產(chǎn)品的市場競爭優(yōu)勢。
圖1為字符“A”的字形繪制過程示意圖。
具體實(shí)施方式
點(diǎn)陣字庫在目前的許多產(chǎn)品領(lǐng)域都有著極其廣泛的應(yīng)用,特別是一些存儲(chǔ)容量比較小的消費(fèi)類電子產(chǎn)品設(shè)備,如機(jī)頂盒、電視機(jī)、顯示器、媒體播放器等。本發(fā)明方法中的點(diǎn)陣字符顯示方案在這些產(chǎn)品中均可以應(yīng)用,特別是在那些具有硬件支持顯示加速或圖像處理的產(chǎn)品方案中,應(yīng)用此發(fā)明技術(shù)更具優(yōu)勢。
本發(fā)明通過一種點(diǎn)陣字庫實(shí)現(xiàn)多種字形大小的方法,包括如下步驟(a)在目標(biāo)系統(tǒng)中至少裝載一種常用的點(diǎn)陣字庫數(shù)據(jù),以作為系統(tǒng)中文字、字符顯示的數(shù)據(jù)源和基礎(chǔ);(b)在系統(tǒng)動(dòng)態(tài)存儲(chǔ)區(qū)(例如內(nèi)存)中開辟一個(gè)滿足單個(gè)字符繪制的最大區(qū)域,為字形中間態(tài)區(qū)域;(c)通過引用步驟(a)中字符的字形編碼,將待顯示的字符字形繪制于步驟(b)中的字形中間態(tài)區(qū)域;(d)結(jié)合步驟(c)中獲取的待顯示字符的字形數(shù)據(jù)構(gòu)成一個(gè)基于內(nèi)存中的圖像數(shù)據(jù),再按照待顯示字符最終顯示的大小,對(duì)字形數(shù)據(jù)采用圖像處理的方法進(jìn)行整體放大或縮小的變換,得到待顯示字符的目標(biāo)字形大小數(shù)據(jù);(e)將步驟(d)中處理后的字符字形數(shù)據(jù)結(jié)果輸出于顯示區(qū)中目標(biāo)位置上,即完成一個(gè)字符的顯示。通過重復(fù)使用字形中間態(tài)區(qū)域,按上述過程便可以完成系統(tǒng)內(nèi)文字、字符串的逐個(gè)顯示??傮w上,本發(fā)明通過一種點(diǎn)陣字庫實(shí)現(xiàn)多種字形大小的方法主要包括裝載點(diǎn)陣字庫、準(zhǔn)備字形中間態(tài)區(qū)域、繪制字形、變換字形、目標(biāo)字形輸出五個(gè)步驟。
裝載至少一種點(diǎn)陣字庫,這是所有使用點(diǎn)陣字庫的產(chǎn)品或系統(tǒng)運(yùn)行的基礎(chǔ)。通常點(diǎn)陣字庫的裝載主要是兩種方式,一是將點(diǎn)陣字庫數(shù)據(jù)制作成能與產(chǎn)品軟件代碼一起編譯的代碼數(shù)據(jù),產(chǎn)品軟件系統(tǒng)編譯時(shí)一同編譯,這樣產(chǎn)品或系統(tǒng)運(yùn)行時(shí)自然就能使用已經(jīng)存于系統(tǒng)中的點(diǎn)陣字庫數(shù)據(jù);二是將點(diǎn)陣字庫數(shù)據(jù)存儲(chǔ)于產(chǎn)品的固態(tài)存儲(chǔ)設(shè)備中,如FLASH或硬盤,產(chǎn)品運(yùn)行時(shí)通過訪問這些存儲(chǔ)設(shè)備獲得對(duì)目標(biāo)點(diǎn)陣字庫數(shù)據(jù)的使用。其中方法二是使產(chǎn)品應(yīng)用點(diǎn)陣字庫數(shù)據(jù)更具靈活性,是產(chǎn)品中最常用的方法。在本發(fā)明中,裝載字庫的方法與其它產(chǎn)品或系統(tǒng)中使用的方式相同,故不再贅述。
準(zhǔn)備字形中間態(tài)區(qū)域是本發(fā)明創(chuàng)作中一個(gè)獨(dú)特的步驟,在本發(fā)明中,顯示字符的字形是在這個(gè)區(qū)域中根據(jù)點(diǎn)陣字庫中的數(shù)據(jù)完成字形繪制,再通過這個(gè)區(qū)域中的字形數(shù)據(jù)進(jìn)行變換實(shí)現(xiàn)目標(biāo)大小的字形,所以將其稱為字符顯示過程中“字形的中間態(tài)區(qū)域”,即顯示字符顯示過程中的過渡空間。這個(gè)區(qū)域一般是在系統(tǒng)動(dòng)態(tài)存儲(chǔ)空間(內(nèi)存)中開辟的。中間態(tài)區(qū)域的大小根據(jù)產(chǎn)品中需要顯示的最大字符的點(diǎn)陣數(shù)決定,例如某個(gè)產(chǎn)品中需要顯示20×20、24×24、30×30、36×36四種大小的字符,所以字形中間態(tài)區(qū)域的大小就按最大的36×36的大小生成,就能滿足以上四種字形顯示時(shí)使用。中間態(tài)區(qū)域的數(shù)據(jù)格式與產(chǎn)品的OSD(On Screen Display)數(shù)據(jù)格式相同。
繪制字形的過程就是將待顯示字符按其在點(diǎn)陣字庫中的字形編碼數(shù)據(jù),將其字形繪制于目標(biāo)區(qū)域。一般方法中點(diǎn)陣字庫的顯示是將字形直接繪制余顯示區(qū)的目標(biāo)區(qū)域,而本發(fā)明創(chuàng)作中按字符的字庫編碼將其繪制于一個(gè)中間態(tài)過渡區(qū)域,即字形中間態(tài)區(qū)域中。
字形的繪制過程主要包括首先引用到字符在點(diǎn)陣字庫中字形編碼數(shù)據(jù),這是一個(gè)N列×M行點(diǎn)陣通過二進(jìn)制編碼表達(dá)字形的數(shù)據(jù),隨后逐行(N個(gè)二進(jìn)制位)表達(dá)每一個(gè)點(diǎn)是字符的顏色還是背景色。如N位中的某一位為1,則該位對(duì)應(yīng)該字符當(dāng)前象素點(diǎn)上為字符顏色,反之,如果該位為0,則該位對(duì)應(yīng)該字符當(dāng)前象素點(diǎn)上為背景色。依此方法,完成當(dāng)前行N個(gè)象素點(diǎn)的繪制。再循環(huán)處理,逐行完成目標(biāo)字符M行的數(shù)據(jù)表達(dá),也就完成了當(dāng)前字符的繪制,即字符的字形數(shù)據(jù)已經(jīng)存在于目標(biāo)區(qū)域中了。如圖2所示點(diǎn)字符A繪制的過程,其中左邊是點(diǎn)陣字庫中字符’A’點(diǎn)陣14×16數(shù)據(jù)的二進(jìn)制表示,右邊是根據(jù)點(diǎn)陣?yán)L制的’A’字形。
在繪制字形步驟中繪制于字形中間態(tài)區(qū)域中的字形數(shù)據(jù)其實(shí)是一份字形位圖數(shù)據(jù)。以此數(shù)據(jù)為基礎(chǔ),就容易構(gòu)建待顯示字符的一個(gè)基于內(nèi)存中的圖像數(shù)據(jù)體,然后按照待顯示字符將要顯示的目標(biāo)大小,對(duì)圖像數(shù)據(jù)采用圖像處理的方法進(jìn)行整體變換,即放大或縮小,最后得到待顯示字符字形目標(biāo)大小的字形數(shù)據(jù)。由此可見,字形的變換實(shí)際上已經(jīng)轉(zhuǎn)化為圖像數(shù)據(jù)的變換處理。
由上所述,變換字形步驟主要是處理字符字形的圖像數(shù)據(jù)。在產(chǎn)品中具體的圖像數(shù)據(jù)縮放有兩種途徑完成一種途徑是通過產(chǎn)品中提供的硬件支持的圖像處理模塊完成;另外一種途徑是通過軟件算法完成圖像數(shù)據(jù)縮放。如果產(chǎn)品中有硬件支持的圖像處理功能,通過產(chǎn)品中提供的硬件支持的圖像處理模塊完成本步驟中的圖像處理顯得極其簡單、快速、高效。通過軟件算法完成圖像縮放,實(shí)際上是對(duì)源圖像中像素點(diǎn)進(jìn)行二維空間的坐標(biāo)變換和顏色插值。比例變換的方程為XYa00d=axdyX'Y']]>若a=b=1時(shí)是恒等變換;若a=b≠1是等比變換,a=b>1是等比放大,a=b<1是等比縮小。
本發(fā)明方法跳開每個(gè)點(diǎn)陣字符從字庫表達(dá)成字形的細(xì)節(jié),直接將其結(jié)果字形在有限的范圍內(nèi)進(jìn)行整體放大或縮小,而縮放的方法正好是圖像放大、縮小的常規(guī)方法。如果產(chǎn)品中有硬件加速顯示或圖像處理功能,則可以充分利用此功能來加速字符字形的縮放過程,使本發(fā)明技術(shù)更加經(jīng)濟(jì)、實(shí)用和高效。如果沒硬件加速顯示或圖像處理功能,目前流行的圖像縮放軟件算法非常多,在本發(fā)明方法中對(duì)基于軟件現(xiàn)實(shí)圖像縮放沒有特別要求,常用的圖像縮放的軟件算法也能滿足的此步驟中的要求。
字符字形顯示輸出步驟是將上個(gè)步驟中獲得的目標(biāo)大小的字符字形顯示于顯示區(qū)域中的目標(biāo)位置上。位于字形中間態(tài)區(qū)域中的字形數(shù)據(jù)格式與顯示區(qū)域OSD的數(shù)據(jù)格式相同,此時(shí)要完成字形顯示(已經(jīng)繪制于字形中間態(tài)區(qū)域中),只需要將字形中間態(tài)區(qū)域中已經(jīng)處理好的字形數(shù)據(jù)復(fù)制到顯示區(qū)域OSD上的目標(biāo)位置,從而即可實(shí)現(xiàn)字符字形顯示。
以上所描述的最佳實(shí)施例僅是對(duì)本發(fā)明進(jìn)行闡述和說明,但并不局限于所公開的任何具體形式,進(jìn)行許多修改和變化是可能的。
權(quán)利要求
1.通過一種點(diǎn)陣字庫實(shí)現(xiàn)多種字形大小的方法,其特征在于包括如下步驟a.在目標(biāo)系統(tǒng)中至少裝載一種常用的點(diǎn)陣字庫數(shù)據(jù),以作為系統(tǒng)中文字、字符顯示的數(shù)據(jù)源和基礎(chǔ);b.在系統(tǒng)動(dòng)態(tài)存儲(chǔ)區(qū)中開辟一個(gè)滿足單個(gè)字符繪制的最大區(qū)域,為字形中間態(tài)區(qū)域;c.通過引用步驟a中字符的字形編碼,將待顯示的字符字形繪制于所述的字形中間態(tài)區(qū)域;d.結(jié)合步驟c中獲取的待顯示字符的字形數(shù)據(jù)構(gòu)成一個(gè)基于動(dòng)態(tài)存儲(chǔ)區(qū)中的圖像數(shù)據(jù),再按照待顯示字符最終顯示的大小,對(duì)字形數(shù)據(jù)進(jìn)行變換,得到待顯示字符的目標(biāo)字形大小數(shù)據(jù);e.將步驟d中處理后的字符字形數(shù)據(jù)結(jié)果輸出于顯示區(qū)中目標(biāo)位置上,即完成一個(gè)字符的顯示;通過重復(fù)使用字形中間態(tài)區(qū)域,按上述過程便可以完成系統(tǒng)內(nèi)文字、字符串的逐個(gè)顯示。
2.如權(quán)利要求1所述的通過一種點(diǎn)陣字庫實(shí)現(xiàn)多種字形大小的方法,其特征在于所述字形中間態(tài)區(qū)域的大小根據(jù)需要顯示的最大字符的點(diǎn)陣數(shù)決定。
3.如權(quán)利要求2所述的通過一種點(diǎn)陣字庫實(shí)現(xiàn)多種字形大小的方法,其特征在于所述字形中間態(tài)區(qū)域設(shè)置于系統(tǒng)內(nèi)存中。
4.如權(quán)利要求1、2或3所述的通過一種點(diǎn)陣字庫實(shí)現(xiàn)多種字形大小的方法,其特征在于所述字形中間態(tài)區(qū)域的數(shù)據(jù)格式與顯示區(qū)域的數(shù)據(jù)格式相同。
5.如權(quán)利要求4所述的通過一種點(diǎn)陣字庫實(shí)現(xiàn)多種字形大小的方法,其特征在于所述字形數(shù)據(jù)進(jìn)行變換即為對(duì)字形數(shù)據(jù)采用圖像處理的方法或者通過軟件算法進(jìn)行整體放大或縮小的變換,得到待顯示字符的目標(biāo)字形大小數(shù)據(jù)。
全文摘要
本發(fā)明公開一種通過一種點(diǎn)陣字庫實(shí)現(xiàn)多種字形大小的方法,包括如下步驟a.裝載點(diǎn)陣字庫數(shù)據(jù),以作為系統(tǒng)中文字、字符顯示的數(shù)據(jù)源和基礎(chǔ);b.開辟一個(gè)滿足單個(gè)字符繪制的最大區(qū)域,為字形中間態(tài)區(qū)域;c.引用步驟a中字符的字形編碼,將待顯示的字符字形繪制于所述字形中間態(tài)區(qū)域;d.結(jié)合步驟c中獲取的待顯示字符的字形數(shù)據(jù)構(gòu)成圖像數(shù)據(jù),按照待顯示字符最終顯示的大小,對(duì)字形數(shù)據(jù)進(jìn)行變換,得到待顯示字符的目標(biāo)字形大小數(shù)據(jù);e.將步驟d中處理后的字符字形數(shù)據(jù)結(jié)果輸出于顯示區(qū)中目標(biāo)位置上,完成一個(gè)字符的顯示。通過重復(fù)使用字形中間態(tài)區(qū)域,按上述過程便可以完成系統(tǒng)內(nèi)文字、字符串的逐個(gè)顯示,從而通過一種點(diǎn)陣字庫實(shí)現(xiàn)多種字形大小。
文檔編號(hào)G09G5/24GK101055714SQ20071007378
公開日2007年10月17日 申請日期2007年3月30日 優(yōu)先權(quán)日2007年3月30日
發(fā)明者李義才 申請人:深圳創(chuàng)維-Rgb電子有限公司