專利名稱:點陣字縮放的方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及字符顯示技術,更具體地說,涉及一種點陣字縮放的方法及系統(tǒng)。
背景技術:
在字符的輸出過程中,需要使用到字庫中存儲的字符信息。字庫按照其描述字符信息原理的不同分為點陣字庫和矢量字庫。其中,矢量字庫記錄了字符的輪廓信息,且具備無級縮放的功能,但構造字庫的難度大成本高,同時字符輸出的算法也較為復雜。點陣字庫則描述了字符每個像素點上是否著色的信息。點陣字庫構造簡單,字符輸出算法也很簡單,同時字庫占用的CPU和存儲資源都比較低。點陣字庫已經(jīng)廣泛的使用在各種嵌入式系統(tǒng)中。然而,點陣字庫中的字符形狀不能無級縮放。而在使用點陣字庫的嵌入式系統(tǒng)中, 往往會遇到需要多種不同大小字形的情況,在這種情況下,現(xiàn)有技術一般通過以下方法來實現(xiàn)1、在系統(tǒng)中預備所需的多種大小字形的點陣字庫。使用多個字形大小的點陣字庫,顯然需要成倍的存儲空間,點陣字庫一般用1位(bit)空間來描述一個像素是否著色的信息,那么對于一個32*32大小的gb2312點陣字庫就需要使用7445*32*32/8 = 952960字節(jié)存儲空間,如果同時需要對拉4,觀拉8,32*32等大小的字庫,那么所需的存儲空間是非常大的。2、先對字符的點陣信息進行掃描獲得其輪廓信息,再對其進行矢量化,再放大到所需大小字形后通過畫貝賽爾曲線或直線及填充操作等來輸出顯示。這種算法在本質上就是矢量算法。使用點陣字庫矢量化來處理,除了算法本身難以實現(xiàn)外,在矢量化過程和字符輸出過程的算法都涉及到貝賽爾曲線的復雜曲線及矢量運算,使得在運算能力比較低的嵌入式系統(tǒng)中導致字符輸出顯示速度慢,顯示效率低下。此外,如果所需的幾種字形大小成整數(shù)倍,那么可以通過對每個點放大整數(shù)倍的方法來輸出顯示。然而在實際應用中,絕大部分所需的不同字形大小并不是成整數(shù)倍的,而是比較臨近的字形大小,比如2(^20,對拉4,洲拉8等等。點陣字庫描述的是字符每個像素點的是否著色信息,要實現(xiàn)對其字形大小的縮放,如果是縮放整數(shù)倍,那么顯然可以很簡單的對每個點在水平方向和垂直方向進行相應倍數(shù)縮放就可以實現(xiàn)。然而在實際應用中,絕大部分所需的不同字形大小并不是成整數(shù)倍的,而是比較臨近的字形大小,比如2(^20,對拉4,觀拉8等等,這些字形大小有較明顯差距但有還不夠成倍數(shù)關系。因此,無法簡單地使用倍數(shù)縮放方法來進行輸出,必須通過復雜的算法進行抽樣、取樣、補點等運算,對CPU要求比較高。而且縮放后的效果會產生不同程度的失真。
發(fā)明內容
本發(fā)明要解決的技術問題在于,針對現(xiàn)有技術的點陣字庫在需要輸出不成整數(shù)倍字形的字符時輸出算法復雜且易失真的缺陷,提供一種點陣字縮放的方法。本發(fā)明解決其技術問題所采用的技術方案是構造一種點陣字縮放的方法,用于根據(jù)基礎點陣字庫輸出所需字形大小的字符至最終顯示區(qū)域,包括以下步驟Si、創(chuàng)建像素大小與所述基礎點陣字庫的字形大小相等的原顯示區(qū)域并清空所述原顯示區(qū)域中所有內容;S2、創(chuàng)建像素大小與所需字形大小相等的臨時顯示區(qū)域,并清空所述臨時顯示區(qū)域中所有內容;S3、從所述基礎點陣字庫中調取與所需字符對應的點陣碼信息并顯示到所述原顯示區(qū)域;S4、調取bilblt函數(shù)對所述原顯示區(qū)域中的像素點信息進行縮放運算并填充到所述臨時顯示區(qū)域中;S5、將所述臨時顯示區(qū)域中的內容拷貝至所述最終顯示區(qū)域。在本發(fā)明所述的點陣字縮放的方法中,所述步驟S3進一步包括根據(jù)所需字符從基礎點陣字庫中調取與該字符對應的點陣碼信息,按所需顏色著色到所述原顯示區(qū)域。在本發(fā)明所述的點陣字縮放的方法中,所述步驟S5包括對所述臨時顯示區(qū)域中的像素點信息逐點判斷是否被著色,如果是則拷貝該像素點信息至所述最終顯示區(qū)域的對應像素位置。在本發(fā)明所述的點陣字縮放的方法中,所述基礎點陣字庫為大小為36*36及以上的點陣字庫。本發(fā)明還提供了一種點陣字縮放的系統(tǒng),用于根據(jù)基礎點陣字庫輸出所需字形大小的字符至最終顯示區(qū)域,包括存儲模塊,用于存儲基礎點陣字庫;原顯示區(qū)域模塊,與所述存儲模塊相連,用于創(chuàng)建像素大小與所述基礎點陣字庫的字形大小相等的原顯示區(qū)域并清空所述原顯示區(qū)域中所有內容,隨后從所述存儲模塊中存儲的基礎點陣字庫中調取與所需字符對應的點陣碼信息并顯示到所述原顯示區(qū)域;臨時顯示區(qū)域模塊,用于創(chuàng)建像素大小與所需字形大小相等的臨時顯示區(qū)域,并清空所述臨時顯示區(qū)域中所有內容;縮放計算模塊,與所述原顯示區(qū)域模塊和臨時顯示區(qū)域模塊相連,用于調取 bilblt函數(shù)對所述原顯示區(qū)域中的像素點信息進行縮放運算并填充到所述臨時顯示區(qū)域中;最終顯示區(qū)域模塊,與所述臨時顯示區(qū)域模塊相連,用于將所述臨時顯示區(qū)域中的內容拷貝至所述最終顯示區(qū)域。在本發(fā)明所述的點陣字縮放的系統(tǒng)中,所述原顯示區(qū)域模塊根據(jù)所需字符從所述存儲模塊中存儲的基礎點陣字庫中調取與該字符對應的點陣碼信息,按所需顏色著色到所述原顯示區(qū)域。在本發(fā)明所述的點陣字縮放的系統(tǒng)中,所述最終顯示區(qū)域模塊對所述臨時顯示區(qū)域中的像素點信息逐點判斷是否被著色,如果是則拷貝該像素點信息至所述最終顯示區(qū)域的對應像素位置。在本發(fā)明所述的點陣字縮放的系統(tǒng)中,所述基礎點陣字庫為大小為36*36及以上的點陣字庫。實施本發(fā)明的點陣字縮放的方法及系統(tǒng),具有以下有益效果本發(fā)明利用硬件的 bilblt功能,由一個基礎點陣字庫平滑得到所需的其它字形大小的點陣點陣字符;在該方法中,由于只需存儲一個基礎點陣字庫因此所需的存儲空間較??;此外,通過利用bilblt 函數(shù)進行轉換,其算法簡單、轉換快速、效果好,同時又不占用CPU資源。
下面將結合附圖及實施例對本發(fā)明作進一步說明,附圖中圖1是本發(fā)明優(yōu)選實施例中點陣字縮放的方法流程圖;圖2是本發(fā)明優(yōu)選實施例中點陣字縮放的系統(tǒng)的模塊示意圖。
具體實施例方式為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。由于硬件性能的提高,很多硬件的顯示模塊都提供了硬件bilblt功能,硬件 bilblt功能是指通過硬件(多為專用的DSP處理器)來對顯示內容進行無級縮小,無級放大,搬運,混合等處理。具有速度快,效果好,不占用CPU資源等優(yōu)勢。本發(fā)明在點陣字的縮放過程中,利用到上述硬件的bilblt功能,從而通過簡單的軟件流程來實現(xiàn)對點陣字庫中字符進行縮放以獲得需要大小的字符輸出。請參閱圖1,為本發(fā)明優(yōu)選實施例中點陣字縮放的方法流程圖。如圖1所示,本發(fā)明提供了一種點陣字縮放的方法,用于根據(jù)基礎點陣字庫輸出所需字形大小的字符至最終顯示區(qū)域。該方法首先需要在系統(tǒng)中存儲基礎點陣字庫,即任意選擇一種大小的點陣字庫進行存儲。考慮到過小的點陣字庫在轉換過程中可能會存在像素不全不均勻和筆畫丟失情況,因此為了保證轉換的效果,也可以優(yōu)選字形較大的點陣字庫,例如36*36以上的點陣字庫。該方法具體包括以下步驟首先在步驟Sl中,創(chuàng)建像素大小與所述基礎點陣字庫的字形大小相等的原顯示區(qū)域并清空所述原顯示區(qū)域中所有內容。隨后在步驟S2中,創(chuàng)建像素大小與所需字形大小相等的臨時顯示區(qū)域,并清空所述臨時顯示區(qū)域中所有內容。隨后在步驟S3中,從所述基礎點陣字庫中調取與所需字符對應的點陣碼信息并顯示到所述原顯示區(qū)域。在本發(fā)明的進一步優(yōu)選實施例中,步驟S3具體為根據(jù)所需字符從基礎點陣字庫中調取與該字符對應的點陣碼信息,按所需顏色著色到所述原顯示區(qū)域。隨后在步驟S4中,調取bilblt函數(shù)對所述原顯示區(qū)域中的像素點信息進行縮放運算并填充到所述臨時顯示區(qū)域中。隨后在步驟S5中,將所述臨時顯示區(qū)域中的內容拷貝至所述最終顯示區(qū)域。在本發(fā)明的進一步優(yōu)選實施例中,步驟S5具體為對所述臨時顯示區(qū)域中的像素點信息逐點判斷是否被著色,如果是則拷貝該像素點信息至所述最終顯示區(qū)域的對應像素位置。下面以大小的點陣字庫為基礎點陣字庫進行說明。如果需要輸出不同字形大小,例如觀拉8的字符,則其縮放過程如下1、先建立一個對拉4像素的原顯示區(qū)域,并清空該區(qū)域內所有內容。2、建立一個觀拉8像素的臨時顯示區(qū)域,并清空該區(qū)域內所有內容。3、對于某個要輸出的字符,例如“大”字,可以從基礎點陣字庫中獲得該字符“大” 的點陣碼信息,按所需顏色著色到像素的顯示區(qū)域。4、利用硬件bilblt功能該函數(shù)將24拉4像素的原顯示區(qū)域放大到28拉8像素的臨時顯示區(qū)域。即調取bilblt函數(shù)對所述原顯示區(qū)域中的像素點信息進行放大運算并填充到臨時顯示區(qū)域中。5、對觀*觀像素的臨時顯示區(qū)域內容逐點判斷是否被著色,如果是則拷貝到該像素點內容到最終顯示區(qū)域的相應位置。從上面過程可以看到,基礎點陣字庫的字形大小為對拉4,而輸出到最終顯示區(qū)域的字形大小為觀拉8,兩者不成整數(shù)倍數(shù),因此無法用現(xiàn)有的直接縮放的方法來實現(xiàn)。而本發(fā)明的方法則可以快速地對其進行縮放,且最后輸出的字符像素均勻,曲線平滑。請參閱圖2,為本發(fā)明優(yōu)選實施例中點陣字縮放的系統(tǒng)的模塊示意圖。如圖2所示,本發(fā)明提供了一種點陣字縮放的系統(tǒng),用于根據(jù)基礎點陣字庫輸出所需字形大小的字符至最終顯示區(qū)域。該系統(tǒng)主要包括存儲模塊100、原顯示區(qū)域模塊200、臨時顯示區(qū)域模塊300、縮放計算模塊400和最終顯示區(qū)域模塊500。其中,存儲模塊100,用于存儲基礎點陣字庫。同樣該存儲模塊100存儲的基礎點陣字庫可以選擇任意大小的點陣字庫。考慮到過小的點陣字庫在轉換過程中可能會存在像素不全不均勻和筆畫丟失情況,因此為了保證轉換的效果,也可以優(yōu)選字形較大的點陣字庫,例如36*36以上的點陣字庫。原顯示區(qū)域模塊200與所述存儲模塊100相連。原顯示區(qū)域模塊200首先創(chuàng)建像素大小與所述基礎點陣字庫的字形大小相等的原顯示區(qū)域并清空所述原顯示區(qū)域中所有內容,隨后從所述存儲模塊100中存儲的基礎點陣字庫中調取與所需字符對應的點陣碼信息并顯示到所述原顯示區(qū)域。在本發(fā)明更進一步的優(yōu)選實施例中,原顯示區(qū)域模塊200根據(jù)所需字符從所述存儲模塊中存儲的基礎點陣字庫中調取與該字符對應的點陣碼信息,按所需顏色著色到所述原顯示區(qū)域。臨時顯示區(qū)域模塊300用于創(chuàng)建像素大小與所需字形大小相等的臨時顯示區(qū)域, 并清空所述臨時顯示區(qū)域中所有內容??s放計算模塊400與原顯示區(qū)域模塊200和臨時顯示區(qū)域模塊300相連??s放計算模塊400用于在原顯示區(qū)域和臨時顯示區(qū)域創(chuàng)建后,且臨時顯示區(qū)域已顯示了從基礎點陣字庫中調取的字符圖像后,調取bilblt函數(shù)對原顯示區(qū)域中的像素點信息進行縮放運算并填充到所述臨時顯示區(qū)域中。最終顯示區(qū)域模塊500,與所述臨時顯示區(qū)域模塊300相連,用于將臨時顯示區(qū)域中的內容拷貝至所述最終顯示區(qū)域。在本發(fā)明更進一步的優(yōu)選實施例中,所述最終顯示區(qū)域模塊500對所述臨時顯示區(qū)域中的像素點信息逐點判斷是否被著色,如果是則拷貝該像素點信息至所述最終顯示區(qū)域的對應像素位置。綜上所述,本發(fā)明的點陣字縮放的方法及系統(tǒng)利用硬件的bilblt功能,由一個基礎點陣字庫平滑得到所需的其它字形大小的點陣點陣字符;在該方法中,由于只需存儲一個基礎點陣字庫因此所需的存儲空間較??;此外,通過利用bilblt函數(shù)進行轉換,其算法簡單、轉換快速、效果好,同時又不占用CPU資源。 本發(fā)明是根據(jù)特定實施例進行描述的,但本領域的技術人員應明白在不脫離本發(fā)明范圍時,可進行各種變化和等同替換。此外,為適應本發(fā)明技術的特定場合或材料,可對本發(fā)明進行諸多修改而不脫離其保護范圍。因此,本發(fā)明并不限于在此公開的特定實施例, 而包括所有落入到權利要求保護范圍的實施例。
權利要求
1.一種點陣字縮放的方法,用于根據(jù)基礎點陣字庫輸出所需字形大小的字符至最終顯示區(qū)域,其特征在于,包括以下步驟51、創(chuàng)建像素大小與所述基礎點陣字庫的字形大小相等的原顯示區(qū)域并清空所述原顯示區(qū)域中所有內容;52、創(chuàng)建像素大小與所需字形大小相等的臨時顯示區(qū)域,并清空所述臨時顯示區(qū)域中所有內容;53、從所述基礎點陣字庫中調取與所需字符對應的點陣碼信息并顯示到所述原顯示區(qū)域;54、調取bilblt函數(shù)對所述原顯示區(qū)域中的像素點信息進行縮放運算并填充到所述臨時顯示區(qū)域中;55、將所述臨時顯示區(qū)域中的內容拷貝至所述最終顯示區(qū)域。
2.根據(jù)權利要求1所述的點陣字縮放的方法,其特征在于,所述步驟S3進一步包括 根據(jù)所需字符從基礎點陣字庫中調取與該字符對應的點陣碼信息,按所需顏色著色到所述原顯示區(qū)域。
3.根據(jù)權利要求1或2所述的點陣字縮放的方法,其特征在于,所述步驟S5包括對所述臨時顯示區(qū)域中的像素點信息逐點判斷是否被著色,如果是則拷貝該像素點信息至所述最終顯示區(qū)域的對應像素位置。
4.根據(jù)權利要求1或2所述的點陣字縮放的方法,其特征在于,所述基礎點陣字庫為大小為36*36及以上的點陣字庫。
5.一種點陣字縮放的系統(tǒng),用于根據(jù)基礎點陣字庫輸出所需字形大小的字符至最終顯示區(qū)域,其特征在于,包括存儲模塊(100),用于存儲基礎點陣字庫;原顯示區(qū)域模塊000),與所述存儲模塊(100)相連,用于創(chuàng)建像素大小與所述基礎點陣字庫的字形大小相等的原顯示區(qū)域并清空所述原顯示區(qū)域中所有內容,隨后從所述存儲模塊(100)中存儲的基礎點陣字庫中調取與所需字符對應的點陣碼信息并顯示到所述原顯示區(qū)域;臨時顯示區(qū)域模塊(300),用于創(chuàng)建像素大小與所需字形大小相等的臨時顯示區(qū)域,并清空所述臨時顯示區(qū)域中所有內容;縮放計算模塊G00),與所述原顯示區(qū)域模塊(200)和臨時顯示區(qū)域模塊(300)相連, 用于調取bilblt函數(shù)對所述原顯示區(qū)域中的像素點信息進行縮放運算并填充到所述臨時顯示區(qū)域中;最終顯示區(qū)域模塊(500),與所述臨時顯示區(qū)域模塊(300)相連,用于將所述臨時顯示區(qū)域中的內容拷貝至所述最終顯示區(qū)域。
6.根據(jù)權利要求5所述的點陣字縮放的系統(tǒng),其特征在于,所述原顯示區(qū)域模塊(200) 根據(jù)所需字符從所述存儲模塊中存儲的基礎點陣字庫中調取與該字符對應的點陣碼信息, 按所需顏色著色到所述原顯示區(qū)域。
7.根據(jù)權利要求5或6所述的點陣字縮放的系統(tǒng),其特征在于,所述最終顯示區(qū)域模塊(500)對所述臨時顯示區(qū)域中的像素點信息逐點判斷是否被著色,如果是則拷貝該像素點信息至所述最終顯示區(qū)域的對應像素位置。
8.根據(jù)權利要求5或6所述的點陣字縮放的方法,其特征在于,所述基礎點陣字庫為大小為36*36及以上的點陣字庫。
全文摘要
本發(fā)明涉及一種點陣字縮放的方法及系統(tǒng),用于根據(jù)基礎點陣字庫輸出所需字形大小的字符至最終顯示區(qū)域,所述方法包括以下步驟S1、創(chuàng)建像素大小與所述基礎點陣字庫的字形大小相等的原顯示區(qū)域;S2、創(chuàng)建像素大小與所需字形大小相等的臨時顯示區(qū)域;S3、從所述基礎點陣字庫中調取與所需字符對應的點陣碼信息并顯示到所述原顯示區(qū)域;S4、調取bilblt函數(shù)對所述原顯示區(qū)域中的像素點信息進行縮放運算并填充到所述臨時顯示區(qū)域中;S5、將所述臨時顯示區(qū)域中的內容拷貝至所述最終顯示區(qū)域。本發(fā)明利用硬件的bilblt功能,由一個基礎點陣字庫平滑得到所需的其它字形大小的點陣點陣字符,其算法簡單、轉換快速、效果好,所需的存儲空間較小,同時又不占用CPU資源。
文檔編號G09G5/26GK102280098SQ20101019422
公開日2011年12月14日 申請日期2010年6月8日 優(yōu)先權日2010年6月8日
發(fā)明者彭文劍 申請人:康佳集團股份有限公司