專利名稱:矢量字體生成平滑點陣字體的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式設(shè)備的點陣字體顯示技術(shù)領(lǐng)域,具體是一種用于嵌入式 設(shè)備的矢量字體生成平滑點陣字體的方法。
技術(shù)背景點陣字體,因其不需要變形,且占用空間資源和系統(tǒng)運算資源很少,在一 些單片機設(shè)備以及嵌入式設(shè)備上得到了廣泛的應(yīng)用。由于嵌入式設(shè)備屏幕變化 的多樣性,在產(chǎn)品開發(fā)過程中往往需要生成不同尺寸的點陣字體,但由于點陣 字體本身的限制,無法實現(xiàn)平滑變形,所以一般會采用從矢量字體生成點陣字體。目前的生成方法, 一般是通過在Windows平臺上,使用平臺的開發(fā)接口獲 得指定大小的矢量字體的對應(yīng)點陣信息。該方法存在的缺陷是,從開發(fā)接口中 獲得的點陣信息是直接從沒有經(jīng)過ClearType美化的輸出結(jié)果獲得的。其中包含 強烈鋸齒,如圖4所示, 一般生成后需要進行大量的人工修飾作為缺陷補救方 法,人工修飾的工作量太大,尤其對于多編碼的語言比如中文,日文,韓文等 字體,且占用空間資源和系統(tǒng)運算資源都很大。以下對TrueType及ClearType技術(shù)進行必要的介紹TrueType字體支持放大、縮小以及變形的矢量字體,特點如下1. 屏幕占用多邊形TrueType字體的某一個字經(jīng)過放大、縮小和變形以后 顯示在屏幕上占用的多邊形范圍。2. 實像素TrueType字體在屏幕占用多邊形內(nèi)的有效像素。3. 虛像素TrueType字體在屏幕占用多邊形內(nèi)的無效像素。 TrueType技術(shù)的缺陷1) 小尺寸的TrueType字體無法圓滑顯示, 一般以對應(yīng)的點陣結(jié)果作 為輸出,所以,在該尺寸下無法變形。2) 無抗鋸齒,邊緣過渡強烈。ClearType'顯示技術(shù)ClearType顯示技術(shù)解決上述TrueType字體缺陷的辦法是1) 根據(jù)字體的不同矢量性質(zhì),在實像素和虛像素之間加入過渡色像素, 并把某些實像素和虛像素轉(zhuǎn)化成過渡色像素,產(chǎn)生圓滑效果。2) 過渡色像素的透明度極端情況,全透明的情況下,過渡色與虛像 素一致,透明度記作255。全不透明的情況下,過渡色與實像素一致,透明度記 為0。3) 過渡色像素的特性a. 透明度越低的過渡色像素對平滑效果越重要。b. 透明度越低的過渡色像素距離實像素的越近。發(fā)明內(nèi)容本發(fā)明的目的是針對以上所述從矢量字體生成點陣字體存在的不足,提出 一種實現(xiàn)容易,運算量小,得到的點陣字體平滑美觀,占空間資源和系統(tǒng)運算 資源少的矢量字體生成平滑點陣字體的方法。本發(fā)明是這樣實現(xiàn)的矢量字體生成平滑點陣字體的方法,是通過如下步 驟實現(xiàn)的(1) 、從字體接口中選擇一款TrueType字體;(2) 、提取該TrueType字體中包含某特定小尺寸下的點陣信息(Pixell);(3) 、提取該TrueType字體在該尺寸下的ClearType顯示結(jié)果 (ClearTypel);(4) 、將以上的點陣信息(Pixell)和顯示結(jié)果(ClearTypel)進行對照,獲得透明度閥值;(5) 、以透明度閥值為點陣生成的指引,在顯示設(shè)備上生成新的點陣字體; 所述的透明度閥值獲取方法如下a. 提取差別像素對于點陣信息(Pixell)的所有像素和顯示結(jié)果 (ClearTypel)的所有像素進行比較,獲得有區(qū)別像素區(qū)域,保存在Diffl;b. 遍歷點陣信息(Pixdl)上在區(qū)別像素區(qū)域Diffl范圍內(nèi)所有像素獲得它們的點陣信息透明度(tmnsSuml);c. 遍歷顯示結(jié)果ClearTypel上在區(qū)別像素區(qū)域Diffl范圍內(nèi)所有像素 獲得它們的顯示結(jié)果透明度(transSum2);d. 透明度閥值等于顯示結(jié)果透明度(transSum2)除以點陣信息透明 度(tmnsSuml)乘以256。所述的TrueType字體尺寸的寬和高一般是目標點陣尺寸大小的整數(shù)倍。 所述的TrueType字體尺寸的寬和高一般是目標點陣尺寸大小的單數(shù)倍。 所述的矢量字體生成平滑點陣字體的方法在單片機設(shè)備以及嵌入式設(shè)備顯 示屏幕上的應(yīng)用。本發(fā)明將現(xiàn)有的矢量字體結(jié)合現(xiàn)有的TrueType顯示技術(shù)和ClearTypel字體處理技術(shù),通過以上所述的處理后得到能在單片機設(shè)備以及嵌入式設(shè)備上應(yīng)用 的平滑點陣字體。本方法實現(xiàn)容易,運算量小,占用處理器資源極少,得到的 點陣字體平滑美觀,占空間資源和系統(tǒng)運算資源少,在單片機設(shè)備以及嵌入式 設(shè)備等小型設(shè)備中具有廣闊的應(yīng)用前景。
圖1為本發(fā)明矢量字體生成平滑點陣字體的方法的流程圖; 圖2為本發(fā)明矢量字體生成平滑點陣字體的方法點陣字體生成示意圖; 圖3為本發(fā)明矢量字體生成平滑點陣字體的方法單個像素處理的點陣字體 生成示意圖。圖4為目前矢量字體生成點陣字體的顯示示意圖。
具體實施方式
以下結(jié)合附圖和具體實施例對本發(fā)明矢量字體生成平滑點陣字體的方法進 行詳細的說明。矢量字體生成平滑點陣字體的方法,如圖2所示,是通過如下步驟實現(xiàn)的(1) 、從字體接口中選擇一款TmeType字體;(2) 、提取該TrueType字體中包含某特定小尺寸下的點陣信息,保存為 Pixell,如圖2中a所示;(3) 、提取該TrueType字體在該尺寸下的ClearType顯示結(jié)果,存為 ClearType 1如圖2中b所示;(4) 、將以上的點陣信息Pixdl和顯示結(jié)果ClearTypel進行比較獲得透明 度閥值;(5) 、以透明度閥值為點陣生成的指引,在顯示設(shè)備上生成新的點陣字體; 所述的透明度閥值獲取方法如下a、 提取差別像素:對于點陣信息Pixell的所有像素和顯示結(jié)果ClearTypel 的所有像素進行比較,獲得有區(qū)別像素區(qū)域,保存為Diffl,如圖2中c所示;b、 遍歷點陣信息Pixell上在區(qū)別像素區(qū)域Diffl范圍內(nèi)所有像素獲得它 們的點陣信息透明度,標記為transSuml,如圖2中d所示;c、 遍歷顯示結(jié)果ClearTypel上在區(qū)別像素區(qū)域Diffl范圍內(nèi)所有像素獲 得它們的顯示結(jié)果透明度,標記為transSum2,如圖2中e所示;d、 透明度閥值等于顯示結(jié)果透明度transSum2除以點陣信息透明度 transSum 1乘以256。以上具體的處理流程如圖1所示。本發(fā)明通過一個尺寸比較大的TrueType字體的ClearType顯示結(jié)果,并利 用TrueType字體本身的包含信息,按照以上所述的方法計算出一個透明度閥值, 作為點陣生成的指引,生成新的點陣字體。生成任意尺寸的點陣字體,都應(yīng)選取大尺寸的TrueType字體進行生成,是 由于大尺寸的TrueType字體的ClearType顯示結(jié)果包含更多的過渡像素,對于 邊緣計算更有利。TrueType尺寸選取條件是,寬和高一般是目標點陣尺寸大小 的整數(shù)倍,這樣可以防止從大變到小的不規(guī)則變形的誤差。目標點陣尺寸較大 時或者不能以大于目標尺寸整數(shù)倍顯示時可使用單倍,即與目標點陣尺寸大小 一樣的TrueType尺寸。透明度閥值(0到255之間),在ClearType顯示結(jié)果中,過渡色像素中透明 度高于該值的像素被忽略為虛像素,低于等于該值的像素被認為是實像素。實施例lTrueType字體尺寸的寬和高是目標點陣尺寸大小的整數(shù)倍的矢量字體生成 平滑點陣字體的方法,是通過如下步驟實現(xiàn)的(1) 、從字體接口中選擇一款TrueType字體;(2) 、提取該TrueType字體中包含放大n倍尺寸下的點陣信息,保存為 Pixell, n為自然數(shù),即TrueType字體尺寸的寬和高是目標點陣尺寸大小的整 數(shù)倍;(3) 、提取該TrueType字體在該尺寸下的ClearType顯示結(jié)果保存為 ClearTypel;(4) 、將以上的點陣信息Pixdl和顯示結(jié)果ClearTypel獲得透明度閥值 threshold,透明度閥值獲取方法如下a、 提取差別像素:對于點陣信息Pixell的所有像素和顯示結(jié)果ClearTypel 的所有像素進行比較,獲得有區(qū)別像素區(qū)域,保存為Diffl;b、 遍歷點陣信息Pixell上在區(qū)別像素區(qū)域Diffl范圍內(nèi)所有像素獲得它 們的點陣信息透明度,標記為transSuml;c、 遍歷顯示結(jié)果ClearTypel上在區(qū)別像素區(qū)域Diffl范圍內(nèi)所有像素獲 得它們的顯示結(jié)果透明度,標記為transSum2;d、 透明度閥值等于顯示結(jié)果透明度transSum2除以點陣信息透明度 transSuml乘以256。(5)、以透明度閥值為點陣生成的指引,在顯示設(shè)備上生成新的點陣字體, 具體過程如下獲得目標大小的整數(shù)倍的字體的ClearType顯示結(jié)果,標記為f, 目標尺寸大小的點陣生成結(jié)果為fTarge,放大倍數(shù)記為n, f的寬為w, f的高為 h,那么,fTarget寬wTarget = w / n, fTarget高hTarget = h / n,另|3么,fTarget —ji 單個像素對應(yīng)f的n * n個像素,n越大,單個像素的對應(yīng)f像素越多,生成指 引也越詳細。從f中取出一個對應(yīng)目標單個像素的一ii像素組,求像素組的透明度禾口 sum,平均透明度average為average=sum/(n*n),判斷平均透明度average 與透明度閥值threshold的大小,如果平均透明度average大于透明度閥值 threshold, fTarget目標像素為實像素,在判斷是否還有下一組像素后,將結(jié)果在 屏幕輸出。如果平均透明度閥值average小于透明度閥值threshold, fTarget目標 像素為虛像素在判斷是否還有下一組像素后,將結(jié)果在屏幕輸出。 實施例2TrueType字體尺寸的寬和高是目標點陣尺寸大小的單數(shù)倍的矢量、字體生成 平滑點陣字體的方法,是通過如下步驟實現(xiàn)的-(1 )、從字體接口中選擇一款TrueType字體;(2) 、提取該TrueType字體中包含放大n倍尺寸下的點陣信息,保存為 Pixdl, n為自然數(shù),即TrueType字體尺寸的寬和高是目標點陣尺寸大小的整 數(shù)倍;(3) 、提取該TrueType字體在該尺寸下的ClearType顯示結(jié)果保存為 Cl6arTyp615(4) 、將以上的點陣信息Pixell和顯示結(jié)果ClearTypel獲得透明度閥值 threshold,透明度閥值獲取方法如下a、 提取差別像素:對于點陣信息Pixell的所有像素和顯示結(jié)果ClearTypel 的所有像素進行比較,獲得有區(qū)別像素區(qū)域,保存為Diffl;b、 遍歷點陣信息Pkell上在區(qū)別像素區(qū)域Diffl范圍內(nèi)所有像素獲得它 們的點陣信息透明度,標記為transSuml;c、 遍歷顯示結(jié)果ClearTypel上在區(qū)別像素區(qū)域Diffl范圍內(nèi)所有像素獲 得它們的顯示結(jié)果透明度,標記為transSum2;d、 透明度閥值等于顯示結(jié)果透明度transSum2除以點陣信息透明度 t認sS腿l乘以256。(5)、以透明度閥值為點陣生成的指引,在顯示設(shè)備上生成新的點陣字體,具體過程如下如圖3所示,獲得目標大小的單數(shù)倍的字體的單個像素的ClearType 顯示結(jié)果,標記為f,目標尺寸大小的點陣生成結(jié)果為fTarge,放大倍數(shù)記為n, 從f中取出一個對應(yīng)目標單個像素的r^n像素組,求像素組的透明度和sum,平 均透明度average為average=sum/(n*n),判斷平均透明度average與透明度閥值 threshold的大小,如果平均透明度average大于透明度閥值threshold, fTarget 目標像素為實像素,在判斷是否還有下一組像素后,將結(jié)果在屏幕輸出。如果 平均透明度閥值average小于透明度閥值threshold, fTarget目標像素為虛像素在 判斷是否還有下一組像素后,將結(jié)果在屏幕輸出。
權(quán)利要求
1、矢量字體生成平滑點陣字體的方法,其特征在于是通過如下步驟實現(xiàn)的(1)、從字體接口中選擇一款TrueType字體;(2)、提取該TrueType字體中包含某特定小尺寸下的點陣信息;(3)、提取該TrueType字體在該尺寸下的ClearType顯示結(jié)果;(4)、將以上的點陣信息和顯示結(jié)果進行對照,獲得透明度閥值;(5)、以透明度閥值為點陣生成的指引,在顯示設(shè)備上生成新的點陣字體;所述的透明度閥值獲取方法如下a、取差別像素對于點陣信息的所有像素和顯示結(jié)果的所有像素進行比較,獲得有區(qū)別像素區(qū)域;b、歷點陣信息上在區(qū)別像素區(qū)域范圍內(nèi)所有像素獲得它們的點陣信息透明度;c、遍歷顯示結(jié)果上在區(qū)別像素區(qū)域范圍內(nèi)所有像素獲得它們的顯示結(jié)果透明度;d、明度閥值等于顯示結(jié)果透明度除以點陣信息透明度乘以256。
2、 如權(quán)利要求1所述的矢量字體生成平滑點陣字體的方法,其特征在于 所述的TrueType字體尺寸的寬和高是目標點陣尺寸大小的整數(shù)倍。
3、 如權(quán)利要求1所述的矢量字體生成平滑點陣字體的方法,其特征在于 所述的TrueType字體尺寸的寬和高是目標點陣尺寸大小的單數(shù)倍。
4、 如權(quán)利要求1所述的矢量字體生成平滑點陣字體的方法,其特征在于 在單片機設(shè)備以及嵌入式設(shè)備顯示屏幕上的應(yīng)用。
全文摘要
矢量字體生成平滑點陣字體的方法,是通過如下步驟實現(xiàn)的(1)、從字體接口中選擇一款TrueType字體;(2)、提取該TrueType字體中包含某特定小尺寸下的點陣信息;(3)、提取該TrueType字體在該尺寸下的ClearType顯示結(jié)果;(4)、將以上的點陣信息和顯示結(jié)果進行對照,獲得透明度閥值;(5)、以透明度閥值為點陣生成的指引,在顯示設(shè)備上生成新的點陣字體。本方法實現(xiàn)容易,運算量小,占用處理器資源極少,得到的點陣字體平滑美觀,占空間資源和系統(tǒng)運算資源少,在單片機設(shè)備以及嵌入式設(shè)備等小型設(shè)備中具有廣闊的應(yīng)用前景。
文檔編號G09G5/28GK101221746SQ200710031530
公開日2008年7月16日 申請日期2007年11月20日 優(yōu)先權(quán)日2007年11月20日
發(fā)明者嚴春蓮 申請人:嚴春蓮