專利名稱:一種基于輪廓字形模擬點陣字形效果的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于文字信息處理技術(shù)領(lǐng)域,具體涉及一種基于輪廓字形模擬點 陣字形效果的方法及系統(tǒng)。
背景技術(shù):
目前比較成熟的字形存儲方式有點陣字形存儲方式和輪廓字形存儲方式。
點陣字形存儲方式采用二進(jìn)制來存儲固定尺寸大小的點陣字形,即黑白
位圖的存儲方式。每個字形均以黑白象素點矩陣組成。其中,黑色像素用'T, 表示,白色像素用"0"表示。點陣字形存儲方式占用的存儲空間較大,例如 單個16 x 16的點陣字形需要占用32個字節(jié)的存儲空間,而單個48 x 48的點 陣字形則需要占用288個字節(jié)的存儲空間。
輪廓字形存儲方式采用 一個或多個封閉曲線輪廓來描述字形,使用時再 采用相關(guān)的字體引擎進(jìn)行尺寸縮放和填充,將其轉(zhuǎn)換為位圖。這種方式只需 存儲封閉輪廓上曲線的描述數(shù)據(jù),具備無級平滑縮放而保持字體風(fēng)格不變等 優(yōu)點。
隨著技術(shù)的發(fā)展,點陣字形的應(yīng)用場合越來越少,因為輪廓字形技術(shù)基 本上可以取代點陣字形技術(shù)。但當(dāng)字形尺寸較小時,采用輪廓字形技術(shù)在字 形縮放和填充后得到的結(jié)果會出現(xiàn)筆畫粘連等問題,影響閱讀效果。由于點 陣字形中每一個字都是按照點矩陣大小來設(shè)計,所以不會出現(xiàn)上述問題。因
此,當(dāng)字形尺寸較小時,現(xiàn)有的處理方式是用點陣字形來替代輪廓字形。這 種方式在提供輪廓字形數(shù)據(jù)的同時,還必須提供點陣字形數(shù)據(jù),因此造成了 字形數(shù)據(jù)的冗余,而且在同時提供多套點陣字形數(shù)據(jù)的情況下,數(shù)據(jù)量將會 成倍的增長。另外,嵌入點陣字形數(shù)據(jù)必須獲得相關(guān)部門的授權(quán),從而增加 了用戶的成本
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的是提供一種基于輪廓字形模 擬點陣字形效果的方法及系統(tǒng),該方法及系統(tǒng)在輪廓字形的基礎(chǔ)上,通過直 接調(diào)整輪廓字形中筆畫的方式,來模擬點陣字形的顯示效果。
為了實現(xiàn)上述目的,本發(fā)明釆用的技術(shù)方案是, 一種基于輪廓字形模擬 點陣字形效果的方法,包括以下步驟
(1 )將所有的筆畫調(diào)整代碼嵌入到輪廓字庫的公共數(shù)據(jù)部分,所述的筆
畫調(diào)整代碼是指對輪廓字形中某類筆畫進(jìn)行調(diào)整的代碼;
(2 )將調(diào)用關(guān)系代碼嵌入到在指定尺寸上需要調(diào)整筆畫的輪廓字形數(shù)據(jù) 的前面,所述的調(diào)用關(guān)系代碼是指參照點陣字形的效果調(diào)用公共數(shù)據(jù)部分的 筆畫調(diào)整代碼以完成對輪廓字形中的筆畫進(jìn)行調(diào)整的代碼;
(3)當(dāng)讀取需要調(diào)整筆畫的輪廓字形數(shù)據(jù)時,字體引擎通過該輪廓數(shù) 據(jù)前面的調(diào)用關(guān)系代碼調(diào)用公共數(shù)據(jù)部分的筆畫調(diào)整代碼,在字形渲染之前 對輪廓字形中的筆畫進(jìn)行調(diào)整。
如上所述的一種基于輪廓字形模擬點陣字形效果的方法,步驟(l)中, 筆畫調(diào)整方式包括筆畫變形方式、筆畫隱藏方式、筆畫整體平移方式和筆畫 延伸方式。
如上所述的一種基于輪廓字形模擬點陣字形效果的方法,其中,所述的 筆畫變形方式包括水平類筆畫和豎直類筆畫之間的相互轉(zhuǎn)換,水平類筆畫和 撇類筆畫之間的相互轉(zhuǎn)換,水平類筆畫和捺類筆畫之間的相互轉(zhuǎn)換。
如上所述的一種基于輪廓字形模擬點陣字形效果的方法,其中,所述的 水平類筆畫和豎直類筆畫之間的相互轉(zhuǎn)換包括水平類筆畫轉(zhuǎn)換為豎直類筆畫 和豎直類筆畫轉(zhuǎn)換為水平類筆畫;所述的水平類筆畫轉(zhuǎn)換為豎直類筆畫的過 程為,①縮短水平類筆畫的寬度,②延長水平類筆畫的高度;所述的豎直類 筆畫轉(zhuǎn)換為水平類筆畫的過程與水平類筆畫轉(zhuǎn)換為豎直類筆畫的過程相反。
如上所述的一種基于輪廓字形模擬點陣字形效果的方法,其中,所述的水平類筆畫和撇類筆畫之間的相互轉(zhuǎn)換包括水平類筆畫轉(zhuǎn)換為撇類筆畫和撇 類筆畫轉(zhuǎn)換為水平類筆畫;所述的水平類筆畫轉(zhuǎn)換為撇類筆畫的過程包括以
下步驟
① 縮短水平類筆畫的寬度;
② 將步驟①得到的筆畫左邊頂點或者右邊頂點在豎直方向上整體向上
或者向下移動;
③ 將步驟②得到的筆畫的上邊頂點在水平方向上整體向右移動或者下 邊頂點在水平方向上整體向左移動;
所述的撇類筆畫轉(zhuǎn)換為水平類筆畫的過程與水平類筆畫轉(zhuǎn)換為撇類筆 畫的過程相反。
如上所述的一種基于輪廓字形模擬點陣字形效果的方法,其中,所述的 水平類筆畫和捺類筆畫之間的相互轉(zhuǎn)換包括水平類筆畫轉(zhuǎn)換為捺類筆畫和捺 類筆畫轉(zhuǎn)換為水平類筆畫;所述的水平類筆畫轉(zhuǎn)換為捺類筆畫的過程包括以 下步驟
① 縮短水平類筆畫的寬度;
② 將步驟①得到的筆畫左邊頂點或者右邊頂點在豎直方向上整體向上 或者向下移動;
③ 將步驟②得到的筆畫的上邊頂點在水平方向上整體向左移動或者下 邊頂點在水平方向上整體向右移動;
所述的捺類筆畫轉(zhuǎn)換為水平類筆畫的過程與水平類筆畫轉(zhuǎn)換為捺類筆 畫的過程相反。
如上所述的一種基于輪廓字形模擬點陣字形效果的方法,其中,所述的 筆畫隱藏方式的過程包括以下步驟
① 在筆畫調(diào)整過程中始終沒有被調(diào)整的筆畫上任選一點作為隱藏點;
② 將待隱藏筆畫上的所有點沿著水平方向移動到與隱藏點在同一豎直 方向上,或者沿著豎直方向移動到與隱藏點在同一水平方向上;
③ 將待隱藏筆畫上的所有點沿著豎直方向移動到隱藏點,或者沿著水平 方向移動到隱藏點。如上所述的一種基于輪廓字形模擬點陣字形效果的方法,其中,所述的 筆畫整體平移方式包括在水平方向上移動和在豎直方向上移動兩種方式;所 述的在水平方向上移動的過程為將筆畫上的所有點加上在水平方向的移動 量,移動所有點;所述的在豎直方向上移動的過程為將筆畫上的所有點加上 在豎直方向的移動量,移動所有點。
如上所述的一種基于輪廓字形模擬點陣字形效果的方法,其中,所述的
筆畫延伸方式包括筆畫的延長和縮減兩種方式;所述的筆畫的延長和縮減的 過程為,首先確定延長或縮減的方向和距離,然后將筆畫一端的頂點沿著確 定的方向延長或縮減至確定的距離處。
一種基于輪廓字形模擬點陣字形效果的系統(tǒng),所述的系統(tǒng)包括將所有的 筆畫調(diào)整代碼嵌入到輪廓字庫的公共數(shù)據(jù)部分和將調(diào)用關(guān)系代碼嵌入到在指 定尺寸上需要調(diào)整筆畫的輪廓字形數(shù)據(jù)前面的嵌入裝置,以及讀取需要調(diào)整 筆畫的輪廓字形數(shù)據(jù)時,字體引擎通過該輪廓數(shù)據(jù)前面的調(diào)用關(guān)系代碼調(diào)用 公共數(shù)據(jù)部分的筆畫調(diào)整代碼,在字形渲染之前對輪廓字形中的筆畫進(jìn)行調(diào) 整的調(diào)整裝置;所述的筆畫調(diào)整代碼是指對輪廓字形中某類筆畫進(jìn)行調(diào)整的 代碼;所述的調(diào)用關(guān)系代碼是指參照點陣字形的效果調(diào)用公共數(shù)據(jù)部分的筆 畫調(diào)整代碼以完成對輪廓字形中的筆畫進(jìn)行調(diào)整的代碼。
本發(fā)明所述的方法及系統(tǒng)在輪廓字形的基礎(chǔ)上通過對輪廓字形中的筆畫 進(jìn)行調(diào)整的方式,實現(xiàn)了在指定尺寸上模擬點陣字形的效果,避免了嵌入點 陣字形數(shù)據(jù)時造成的數(shù)據(jù)冗余,同時降低了用戶的成本。
圖1是本發(fā)明所述的方法流程圖2是具體實施方式
中矩形類水平筆畫轉(zhuǎn)換為豎直類筆畫示意圖; 圖3是具體實施方式
中矩形類水平筆畫轉(zhuǎn)換為撇類筆畫示意圖;圖4是具體實施方式
中矩形類水平筆畫轉(zhuǎn)換為捺類筆畫示意圖5是具體實施方式
中筆畫隱藏方式示意圖6是具體實施方式
中筆畫整體平移方式示意圖7是具體實施方式
中筆畫延伸方式示意圖8是實施例1中輪廓字形"疆"字示意圖9是實施例1中輪廓字形"疆"字調(diào)整后的效果圖IO是實施例2中輪廓字形"置"字示意圖ll是實施例2中輪廓字形"置"字調(diào)整后的效果圖。
具體實施例方式
下面結(jié)合實施例和附圖對本發(fā)明進(jìn)行詳細(xì)描述。
本發(fā)明主要應(yīng)用于當(dāng)在指定尺寸上輪廓字形中的筆畫發(fā)生粘連,影響正 常閱讀時,通過調(diào)整輪廓字形中筆畫的方式,來模擬點陣字形的顯示效果。
本發(fā)明所述的基于輪廓字形模擬點陣字形效果的系統(tǒng),包括將所有的筆 畫調(diào)整代碼嵌入到輪廓字庫的公共數(shù)據(jù)部分和將調(diào)用關(guān)系代碼嵌入到在指定 尺寸上需要調(diào)整筆畫的輪廓字形數(shù)據(jù)前面的嵌入裝置,以及讀取需要調(diào)整筆 畫的輪廓字形數(shù)據(jù)時,字體引擎通過該輪廓數(shù)據(jù)前面的調(diào)用關(guān)系代碼調(diào)用公 共數(shù)據(jù)部分的筆畫調(diào)整代碼,在字形渲染之前對輪廓字形中的筆畫進(jìn)行調(diào)整 的調(diào)整裝置。其中,筆畫調(diào)整代碼是指對輪廓字形中某類筆畫進(jìn)行調(diào)整的代 碼;調(diào)用關(guān)系代碼是指參照點陣字形的效果調(diào)用公共數(shù)據(jù)部分的筆畫調(diào)整代 碼以完成對輪廓字形中的筆畫進(jìn)行調(diào)整的代碼。
圖1出示了采用本發(fā)明所述的系統(tǒng)模擬點陣字形效果的方法流程,包括 以下步驟。
(1)將所有的筆畫調(diào)整代碼嵌入到輪廓字庫的公共數(shù)據(jù)部分。 筆畫的調(diào)整方式主要包括筆畫變形方式、筆畫隱藏方式、筆畫整體平移 方式和筆畫延伸方式等。筆畫的調(diào)整方式可以根據(jù)實際應(yīng)用的需要進(jìn)行擴(kuò)展。畫和撇類筆畫之間的相互轉(zhuǎn)換,水平類筆畫和捺類筆畫之間的相互轉(zhuǎn)換。
水平類筆畫和豎直類筆畫之間的相互轉(zhuǎn)換包括水平類筆畫轉(zhuǎn)換為豎直類 筆畫和豎直類筆畫轉(zhuǎn)換為水平類筆畫。水平類筆畫轉(zhuǎn)換為豎直類筆畫的過程
為①縮短水平類筆畫的寬度,②延長水平類筆畫的高度。豎直類筆畫轉(zhuǎn)換 為水平類筆畫按照與上述步驟相逆的方式即可實現(xiàn)。
以圖2所示的由頂點21、頂點22、頂點23和頂點24組成的矩形類水平 筆畫轉(zhuǎn)換為豎直類筆畫為例。首先縮短頂點21和頂點22、頂點23和頂點24 之間的水平距離,調(diào)整筆畫在水平方向上的寬度。然后加大頂點21和頂點 24、頂點22和頂點23之間的豎直距離,調(diào)整筆畫在豎直方向上的高度,從 而達(dá)到水平類筆畫轉(zhuǎn)換為豎直類筆畫的目的。轉(zhuǎn)換后的效果如圖2中由頂點 21'、頂點22'、頂點23'和頂點24'組成的豎直筆畫。
水平類筆畫和撇類筆畫之間的相互轉(zhuǎn)換包括水平類筆畫轉(zhuǎn)換為撇類筆 畫和撇類筆畫轉(zhuǎn)換為水平類筆畫。水平類筆畫轉(zhuǎn)換為撇類筆畫的過程包括以 下步驟
① 縮短水平類筆畫的寬度;
② 將步驟①得到的筆畫左邊頂點或者右邊頂點在豎直方向上整體向上 或者向下移動;
③ 將步驟②得到的筆畫的上邊頂點在水平方向上整體向右移動或者下 邊頂點在水平方向上整體向左移動。
撇類筆畫轉(zhuǎn)換為水平類筆畫按照與上述步驟相逆的方式即可實現(xiàn)。 以圖3所示的由頂點31、頂點32、頂點33和頂點34組成的矩形類水平 筆畫轉(zhuǎn)換為撇類筆畫為例。首先將頂點31和頂點32之間的水平距離縮短, 然后將頂點32在豎直方向上向下移動。頂點33和頂點34重復(fù)頂點31和頂 點32的變換操作。最后將頂點33和頂點34在水平方向上整體向左移動。轉(zhuǎn) 換后的效果如圖3中由頂點31'、頂點32'、頂點33'和頂點34'組成的 抽t筆畫。
水平類筆畫和捺類筆畫之間的相互轉(zhuǎn)換包括水平類筆畫轉(zhuǎn)換為捺類筆 畫和捺類筆畫轉(zhuǎn)換為水平類筆畫。其中,水平類筆畫轉(zhuǎn)換為捺類筆畫的過程包括以下步驟
① 縮短水平類筆畫的寬度;
② 將步驟①得到的筆畫左邊頂點或者右邊頂點在豎直方向上整體向上 或者向下移動;
③ 將步驟②得到的筆畫的上邊頂點在水平方向上整體向左移動或者下 邊頂點在水平方向上整體向右移動;
捺類筆畫轉(zhuǎn)換為水平類筆畫按照與上述步驟相逆的方式即可實現(xiàn)。 以圖4所示的由頂點41、頂點42、頂點43和頂點44組成的矩形類水平 筆畫轉(zhuǎn)換為捺類筆畫為例。首先將頂點41和頂點42之間的水平距離縮短, 然后將頂點42在豎直方向上向上移動。頂點43和頂點44重復(fù)頂點41和頂 點42的變換操作。最后將頂點43和頂點44在水平方向上整體向右移動。調(diào) 整后的效果如圖4中由頂點41'、頂點42'、頂點43'和頂點44'組成的 捺筆畫。
筆畫隱藏方式的調(diào)整過程包括以下步驟
① 在筆畫調(diào)整過程中始終沒有被調(diào)整的筆畫上任選一點作為隱藏點;
② 將待隱藏筆畫上的所有點沿著水平方向移動到與隱藏點在同一豎直 方向上,或者沿著豎直方向移動到與隱藏點在同一水平方向上;
③ 將待隱藏筆畫上的所有點沿著豎直方向移動到隱藏點,或者沿著水平 方向移動到隱藏點。
以圖5所示的由頂點51、頂點52、頂點53和頂點54組成的矩形類水平 筆畫隱藏到線段的一個端點55為例,端點55為隱藏點,假設(shè)圖5中的線段 不需要任何調(diào)整。首先將矩形類水平筆畫上所有點沿著水平方向移動到與端 點55在同一豎直方向上,然后再將矩形類水平筆畫上所有點移動到端點55 處,這樣便將原始矩形類水平筆畫轉(zhuǎn)換成了一個點,達(dá)到了隱藏筆畫的目的。
筆畫整體平移包括在水平方向上移動和在豎直方向上移動兩種方式。其 中,在水平方向上移動的過程為將筆畫上的所有點加上在水平方向的移動量, 移動所有點。在豎直方向上移動的過程為將筆畫上的所有點加上在豎直方向 的移動量,移動所有點。以圖6所示的由頂點61、頂點62、頂點63和頂點64組成的矩形類水平 筆畫移動到由頂點6r 、頂點62'、頂點63'和頂點64'組成的矩形類水 平筆畫的位置上為例。首先將矩形類水平筆畫上所有點加上水平方向的移動 量,移動所有點。然后將所有點加上豎直方向上的移動量,移動所有點。
筆畫延伸包括筆畫的延長和縮減兩種方式。筆畫的延長或縮減的過程為 首先確定延長或縮減的方向和距離,然后將筆畫一端的頂點沿著確定的方向 延長或縮減至確定的距離處。
以圖7所示的由頂點71、頂點72、頂點73和頂點74組成的矩形類水平 筆畫中的頂點71和頂點72延伸到頂點71/和頂點72'為例。延長的方向水 平向左,延長的距離至頂點71'和頂點72'處。將矩形類水平筆畫的頂點 71和頂點72沿著水平方向延長至頂點和頂點72'處。如果頂點71'和 72'在頂點71和頂點72、頂點73和頂點74之間,則為縮減矩形類水平筆 畫。在豎直方向上的延伸操作與在水平方向上的延伸操作類似。
將對筆畫的上述調(diào)整方式編寫成代碼,嵌入到輪廓字庫的公共數(shù)據(jù)部分, 以供調(diào)整輪廓字形時調(diào)用。
(2 )將調(diào)用關(guān)系代碼嵌入到在指定尺寸上需要調(diào)整筆畫的輪廓字形數(shù)據(jù)
的前面。
針對每一個需要調(diào)整筆畫的具體輪廓字形來說,參照點陣字形的效果在 指定尺寸上調(diào)整筆畫時可能用到步驟(l)中的一種或幾種調(diào)整方式,因此將 具體輪廓字形的調(diào)整過程代碼,即調(diào)用公共數(shù)據(jù)部分的筆畫調(diào)整代碼以完成 對具體輪廓字形中的筆畫進(jìn)行調(diào)整的調(diào)用關(guān)系代碼應(yīng)嵌入到輪廓字庫中存儲 具體輪廓字形數(shù)據(jù)的前面。
(3)當(dāng)讀取需要調(diào)整筆畫的輪廓字形數(shù)據(jù)時,字體引擎通過該輪廓數(shù) 據(jù)前面的調(diào)用關(guān)系代碼調(diào)用公共數(shù)據(jù)部分的筆畫調(diào)整代碼,在字形渲染之前 對輪廓字形中的筆畫進(jìn)行調(diào)整。實施例1
以調(diào)整圖8所示的輪廓字形"疆"字(方正細(xì)黑中提取)為例。當(dāng)字形 大小為16X16像素時,字形的顯示效果會發(fā)生筆畫粘連的問題,影響閱讀效 果。因此需要參照點陣字形的效果對"疆"字的輪廓字形進(jìn)行調(diào)整。
首先需要將點801和點802在水平方向上延伸到與點805在同一豎直方 向上,點803和點804在水平方向上延伸到與點813在同一豎直方向上。由 于點811、點812、點813和點814組成的筆畫會和相鄰的筆畫發(fā)生粘連,因 此需要將該筆畫隱藏。采用上述的隱藏操作,將其隱藏到點805處。由點806、 807、 808和809組成的筆畫,對點806和點807在水平方向上進(jìn)行延伸操作, 延伸到與點805在同一豎直方向上;對點808和點809在水平方向上同樣進(jìn) 行延伸操作,延伸到與點813在同一豎直方向上。最后對由點815、 816、 817 和818組成的筆畫,實施延伸操作。將點815和點816沿水平方向延伸到與 點805在同一豎直方向上,將點817和點818沿水平方向延伸到與點813在 同一豎直方向上。經(jīng)過上述調(diào)整后,最終得到如圖9所示的與點陣字形相似 的顯示效果。
實施例2
以調(diào)整圖10所示的輪廓字形"置,,字為例。當(dāng)字形大小為12X12像素 時,輪廓字形的顯示效果會發(fā)生筆畫粘連的問題,影響閱讀效果。因此需要 參照點陣字形的效果對"置"字的輪廓字形進(jìn)行調(diào)整。
首先需要將某些筆畫進(jìn)行隱藏,包含由點1010, 1011、 1012和1013組 成的筆畫,將其隱藏到點1001處;由點1014、 1015、 1016和1017組成的筆 畫,同樣將其隱藏到點1001處。然后進(jìn)行變筆操作,將由點1006、 1007、 1008和1009組成的水平類筆畫變換為豎直類筆畫。具體操作步驟為沿水 平方向上將點1006、 1007移動到與點1004在同一豎直方向上,再將點1008、 1009移動到與點1005在同一豎直方向上,再沿豎直方向?qū)Ⅻc1007和點1009 移動到與點1018在同一水平方向上。此外,還需要對由點1002、 1003、 IO(M 和1005組成的筆畫進(jìn)行整體平移操作。將點1004沿水平方向移動到與點 1001在同一豎直方向上,其他三點隨點1004移動相同的水平移動量。經(jīng)過 上述調(diào)整后,最終得到如圖11所示的與點陣字形形似的顯示效果。需要說明的是本發(fā)明的核心是在輪廓字形的基礎(chǔ)上通過對輪廓字形中
的筆畫進(jìn)行調(diào)整,實現(xiàn)模擬點陣字形效果的目的。因此,只要是通過對輪廓 字形中的筆畫進(jìn)行調(diào)整,來達(dá)到模擬點陣字形效果的方式,便屬于本發(fā)明的 技術(shù)創(chuàng)新范圍。
權(quán)利要求
1. 一種基于輪廓字形模擬點陣字形效果的方法,包括以下步驟(1)將所有的筆畫調(diào)整代碼嵌入到輪廓字庫的公共數(shù)據(jù)部分,所述的筆畫調(diào)整代碼是指對輪廓字形中某類筆畫進(jìn)行調(diào)整的代碼;(2)將調(diào)用關(guān)系代碼嵌入到在指定尺寸上需要調(diào)整筆畫的輪廓字形數(shù)據(jù)的前面,所述的調(diào)用關(guān)系代碼是指參照點陣字形的效果調(diào)用公共數(shù)據(jù)部分的筆畫調(diào)整代碼以完成對輪廓字形中的筆畫進(jìn)行調(diào)整的代碼;(3)當(dāng)讀取需要調(diào)整筆畫的輪廓字形數(shù)據(jù)時,字體引擎通過該輪廓數(shù)據(jù)前面的調(diào)用關(guān)系代碼調(diào)用公共數(shù)據(jù)部分的筆畫調(diào)整代碼,在字形渲染之前對輪廓字形中的筆畫進(jìn)行調(diào)整。
2. 如權(quán)利要求1所述的一種基于輪廓字形模擬點陣字形效果的方法, 其特征在于步驟(l)中,筆畫調(diào)整方式包括筆畫變形方式、筆畫隱藏方式、 筆畫整體平移方式和筆畫延伸方式。
3. 如權(quán)利要求2所述的一種基于輪廓字形模擬點陣字形效果的方法, 其特征在于所述的筆畫變形方式包括水平類筆畫和豎直類筆畫之間的相互 轉(zhuǎn)換,水平類筆畫和撇類筆畫之間的相互轉(zhuǎn)換,水平類筆畫和捺類筆畫之間 的相互轉(zhuǎn)換。
4. 如權(quán)利要求3所述的一種基于輪廓字形模擬點陣字形效果的方法, 其特征在于所述的水平類筆畫和豎直類筆畫之間的相互轉(zhuǎn)換包括水平類筆 畫轉(zhuǎn)換為豎直類筆畫和豎直類筆畫轉(zhuǎn)換為水平類筆畫;所述的水平類筆畫轉(zhuǎn) 換為豎直類筆畫的過程為,①縮短水平類筆畫的寬度,②延長水平類筆畫的 高度;所述的豎直類筆畫轉(zhuǎn)換為水平類筆畫的過程與水平類筆畫轉(zhuǎn)換為豎直 類筆畫的過程相反。
5. 如權(quán)利要求3所述的一種基于輪廓字形模擬點陣字形效果的方法, 其特征在于所述的水平類筆畫和撇類筆畫之間的相互轉(zhuǎn)換包括水平類筆畫 轉(zhuǎn)換為撇類筆畫和撇類筆畫轉(zhuǎn)換為水平類筆畫;所述的水平類筆畫轉(zhuǎn)換為撇 類筆畫的過程包括以下步驟① 縮短水平類筆畫的寬度;② 將步驟①得到的筆畫左邊頂點或者右邊頂點在豎直方向上整體向上或者向下移動;③將步驟②得到的筆畫的上邊頂點在水平方向上整體向右移動或者下 邊頂點在水平方向上整體向左移動;所述的撇類筆畫轉(zhuǎn)換為水平類筆畫的過程與水平類筆畫轉(zhuǎn)換為撇類筆畫的過程相反。
6. 如權(quán)利要求3所述的一種基于輪廓字形模擬點陣字形效果的方法, 其特征在于所述的水平類筆畫和捺類筆畫之間的相互轉(zhuǎn)換包括水平類筆畫 轉(zhuǎn)換為捺類筆畫和捺類筆畫轉(zhuǎn)換為水平類筆畫;所述的水平類筆畫轉(zhuǎn)換為捺 類筆畫的過程包括以下步驟① 縮短水平類筆畫的寬度;② 將步驟①得到的筆畫左邊頂點或者右邊頂點在豎直方向上整體向上 或者向下移動;③ 將步驟②得到的筆畫的上邊頂點在水平方向上整體向左移動或者下 邊頂點在水平方向上整體向右移動;所述的捺類筆畫轉(zhuǎn)換為水平類筆畫的過程與水平類筆畫轉(zhuǎn)換為捺類筆 畫的過程相反。
7. 如權(quán)利要求2所述的一種基于輪廓字形模擬點陣字形效果的方法, 其特征在于,所述的筆畫隱藏方式的過程包括以下步驟① 在筆畫調(diào)整過程中始終沒有被調(diào)整的筆畫上任選一點作為隱藏點;② 將待隱藏筆畫上的所有點沿著水平方向移動到與隱藏點在同一豎直 方向上,或者沿著豎直方向移動到與隱藏點在同一水平方向上;③ 將待隱藏筆畫上的所有點沿著豎直方向移動到隱藏點,或者沿著水平 方向移動到隱藏點。
8. 如權(quán)利要求2所述的一種基于輪廓字形模擬點陣字形效果的方法, 其特征在于所述的筆畫整體平移方式包括在水平方向上移動和在豎直方向 上移動兩種方式;所述的在水平方向上移動的過程為將筆畫上的所有點加上 在水平方向的移動量,移動所有點;所述的在豎直方向上移動的過程為將筆 畫上的所有點加上在豎直方向的移動量,移動所有點。
9. 如權(quán)利要求2所述的一種基于輪廓字形模擬點陣字形效果的方法,其特征在于所述的筆畫延伸方式包括筆畫的延長和縮減兩種方式;所述的筆畫的延長和縮減的過程為,首先確定延長或縮減的方向和距離,然后將筆 畫 一端的頂點沿著確定的方向延長或縮減至確定的距離處。
10.—種基于輪廓字形模擬點陣字形效果的系統(tǒng),其特征在于所述的系 統(tǒng)包括將所有的筆畫調(diào)整代碼嵌入到輪廓字庫的公共數(shù)據(jù)部分和將調(diào)用關(guān)系 代碼嵌入到在指定尺寸上需要調(diào)整筆畫的輪廓字形數(shù)據(jù)前面的嵌入裝置,以 及讀取需要調(diào)整筆畫的輪廓字形數(shù)據(jù)時,字體引擎通過該輪廓數(shù)據(jù)前面的調(diào) 用關(guān)系代碼調(diào)用公共數(shù)據(jù)部分的筆畫調(diào)整代碼,在字形渲染之前對輪廓字形 中的筆畫進(jìn)行調(diào)整的調(diào)整裝置;所述的筆畫調(diào)整代碼是指對輪廓字形中某類 筆畫進(jìn)行調(diào)整的代碼;所述的調(diào)用關(guān)系代碼是指參照點陣字形的效果調(diào)用公 共數(shù)據(jù)部分的筆畫調(diào)整代碼以完成對輪廓字形中的筆畫進(jìn)行調(diào)整的代碼。
全文摘要
本發(fā)明公開了一種基于輪廓字形模擬點陣字形效果的方法及系統(tǒng),屬于文字信息處理技術(shù)領(lǐng)域。在現(xiàn)有技術(shù)中,當(dāng)輪廓字形尺寸較小時會出現(xiàn)筆畫粘連等問題,通常采用點陣字形代替輪廓字形,因此需要在輪廓字庫中嵌入點陣字形,從而造成了數(shù)據(jù)冗余,同時會增加用戶的成本。本發(fā)明通過將所有的筆畫調(diào)整代碼嵌入到輪廓字庫的公共數(shù)據(jù)部分,將調(diào)用關(guān)系代碼嵌入到在指定尺寸上需要調(diào)整筆畫的輪廓字形數(shù)據(jù)的前面,當(dāng)讀取需要調(diào)整筆畫的輪廓字形數(shù)據(jù)時,字體引擎通過該輪廓數(shù)據(jù)前面的調(diào)用關(guān)系代碼調(diào)用公共數(shù)據(jù)部分的筆畫調(diào)整代碼,在字形渲染之前對輪廓字形中筆畫進(jìn)行調(diào)整。本發(fā)明與嵌入點陣字形的方式相比,避免了數(shù)據(jù)冗余,同時降低了用戶的成本。
文檔編號G06T11/00GK101447087SQ20081022669
公開日2009年6月3日 申請日期2008年11月20日 優(yōu)先權(quán)日2008年11月20日
發(fā)明者唐英敏, 明 李, 王玉欣 申請人:北大方正集團(tuán)有限公司;北京大學(xué);北京北大方正電子有限公司