專利名稱:一種無襯線字形筆畫接合處的對齊方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機字形信息處理領(lǐng)域,具體涉及一種無襯線字形筆畫接合處的對齊方法。
背景技術(shù):
字形是由基本筆畫組成,基本筆畫是組成漢字的最基本的元素,如橫、豎、撇、點等。漢字字形有很多種風格,稱為不同的字體,常見的字體有宋體、黑體、仿宋體和楷體等,字體的不同表現(xiàn)在筆畫和結(jié)構(gòu)細節(jié)上的差別。襯線是表現(xiàn)不同字體的重要特征之一,具體來說,襯線是指加在字形主筆畫上兩端額外的修飾性元素(如圖1中的2和3所示),襯線形狀不同,往往表示兩種不同的字體。有襯線字體例如宋體,其特征是豎筆較粗,橫筆較細,有古典的優(yōu)雅之美;無襯線字體例如黑體,所有筆畫粗細都一樣,富有時代感。無襯線字體由于其字形簡潔、屏幕顯示效果好等特點,近幾年被廣泛應用于計算機系統(tǒng)。
TrueType是現(xiàn)在Windows、OS/2、UNIX、Linux等絕大多數(shù)計算機操作系統(tǒng)都支持的一種字庫描述格式,它采用二次B樣條曲線描述字形。采用TrueType格式的字庫稱為TrueType字庫。TrueType字庫格式提供了組合字形的字形描述方法,各種需要的字形均通過已有的字形疊加組合而成。TrueType還提供了操作指令,可以對字形中的某個點進行操作,達到需要的效果,例如“相”字是由“木”和“目”兩個偏旁組成,如果字庫中有這兩個偏旁,就可以通過組合字的方式用這兩個偏旁組成“相”字。用偏旁拼不同的字,偏旁會有一定的縮放,縮放后襯線(筆鋒)會發(fā)生變形,可以用操作指令控制襯線部分的點之間的距離保持不變,這樣就可以保證偏旁縮放后筆鋒不變形。
在手持設備等小型嵌入式系統(tǒng)中,由于受系統(tǒng)存儲量的限制,往往要采用數(shù)據(jù)量小的字庫,這就需要用盡量少的筆畫來生成盡可能多的組合字形。受屏幕分辨率的限制,手持設備的屏幕顯示字形的點陣數(shù)一般較小,而且字形在顯示時由于變倍等原因可能在取舍時引起很小的誤差,對于有襯線的字體,其筆畫交接處的接合部分可以包含在襯線輪廓內(nèi),接合點有一定的緩沖區(qū)間,不會由于微小的誤差引起接合處的錯位,對字形的顯示效果沒有明顯的影響,但是,對于無襯線字體而言,其筆畫接合處必須達到嚴格的直線對齊,否則,即使很小的誤差也會產(chǎn)生很明顯的錯位現(xiàn)象,如圖1和圖2所示。
目前,無襯線字形都是采用一個連通輪廓來描述有交接的筆畫,這樣就很難做到筆畫的重復使用,不能有效的減少字庫數(shù)據(jù)量。同時,筆畫重復使用時,同一筆畫在不同字中使用時需要進行適當比例的變化后才可使用,才能提高復用率,但是,復雜的連通輪廓在變倍時會引起筆畫粗細的變化,影響字形質(zhì)量。
無襯線字體由于其字形簡潔、屏幕顯示效果好等特點,應用越來越廣泛,但是現(xiàn)有技術(shù)中存在上述缺點也使其顯示出明顯的不足之處。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的是提供一種無襯線字形筆畫接合處的對齊方法,該方法能夠?qū)崿F(xiàn)筆畫在組合成字時按其方向相應調(diào)整變化比例,不會影響筆畫的精細,同時對筆畫接合處的輪廓線進行對齊,從而實現(xiàn)正確顯示各種字形,不會出現(xiàn)錯位現(xiàn)象;并能夠?qū)崿F(xiàn)筆畫的重復使用,減少了字形的數(shù)據(jù)處理量,能夠得到質(zhì)量高、數(shù)據(jù)量小的漢字字庫。
為達到以上目的,本發(fā)明采用的技術(shù)方案是一種無襯線字形筆畫接合處的對齊方法,包括以下步驟(1)生成字庫所述字庫中的字形是無襯線字形,字形由部件組合而成,部件由筆畫組合而成;(2)對字庫中無襯線字形和部件的筆畫接合處進行對齊。
進一步,步驟(1)中,所述的筆畫是按TrueType字形格式由坐標點描述的圖形,所述的部件是按TrueType組合字形格式由一組筆畫描述的圖形,所述的字形是按TrueType組合字形格式,由一個或一組部件或筆畫描述的圖形。
進一步,步驟(2)中,對字庫中的無襯線字形和部件的筆畫接合處進行對齊時,如果兩個或兩個以上的不同筆畫有交接,其交接處輪廓邊緣有相接并屬于同一直線的輪廓線,則將筆畫交接處應該對齊的輪廓線的節(jié)點的橫坐標或縱坐標設為相等,使其保持處于同一直線的狀態(tài),所述的輪廓線的節(jié)點是指該輪廓線的端點。
再進一步,對字庫中的無襯線字形和部件的筆畫接合處進行對齊時,具體采用如下方法1)如果兩個不同筆畫的水平或垂直輪廓線在筆畫交接處位于同一條直線上并有部分重合時,則對兩條水平或垂直輪廓線進行對齊時,指定兩條輪廓線兩端的四個節(jié)點的縱坐標或橫坐標相同,;2)如果兩個以上不同筆畫的水平或垂直輪廓線在筆畫交接處位于同一條直線上并有部分重合時,則筆畫交接處的所有輪廓線都需要對齊,選擇一個節(jié)點做基準點,其它節(jié)點與基準點對齊。
更進一步,步驟1)中指定兩條輪廓線兩端的四個節(jié)點的縱坐標或橫坐標相同時,首先指定其中一個節(jié)點的縱坐標或橫坐標在光柵化時指向最近的格點,然后指定另外三個節(jié)點的縱坐標或橫坐標與第一個節(jié)點的縱坐標或橫坐標相同。
進一步,將筆畫交接處的輪廓線進行對齊時應以相接輪廓線中位置對字形影響最大的輪廓線的節(jié)點為基準點,其它輪廓線的節(jié)點與該基準點對齊。
進一步,步驟(2)中,對字庫中的無襯線字形筆畫接合處進行對齊時,先將筆畫“折”拆分為“橫”、“豎”或者“橫”、“撇”,然后在筆畫交接處進行對齊。
進一步,步驟(2)中,對字庫中的無襯線字形和部件的筆畫接合處進行對齊時,對于漢字中重復使用較多的偏旁部首,采用預組合部件的方法,即先用筆畫組合成部件,然后再用部件組合成漢字字形。
本發(fā)明的效果在于采用本發(fā)明所述的方法能夠得到質(zhì)量高、數(shù)據(jù)量小的漢字字庫,能夠保證字形的正確顯示,并可以避免屏幕顯示時由誤差引起的筆畫輪廓錯位,同時,該方法還能夠用最基本的筆畫組合字形,筆畫在組字時按其方向做比例變化,不會影響筆畫的粗細和質(zhì)量。
圖1是無襯線漢字和有襯線漢字筆畫交接的示意圖;圖2是沒有對齊和對齊后的字庫字形顯示效果對比示意圖,上一行是沒有對齊的字庫,下一行是對齊后的字庫;圖3是沒有對齊的字形筆畫輪廓錯位處放大顯示的點陣示意圖;圖4是對齊后的字形筆畫輪廓交接處放大顯示的示意圖;圖5是設定四個點對齊的指令函數(shù)流程示意圖;圖6是多條線段處于同一直線上的字形筆畫輪廓交接處放大顯示的示意圖;圖7是本發(fā)明具體實施方式
的流程示意圖。
附圖標記說明1、無襯線字的筆畫交接處,輪廓線嚴格對齊。
2、有襯線字筆畫交接處,接頭在襯線內(nèi),有緩沖。
3、字形筆畫中的襯線。
4-5、沒有指令的字顯示結(jié)果中交接錯位處。
6-7、筆畫輪廓。
8-17、字形輪廓線的節(jié)點。
具體實施例方式
下面結(jié)合附圖及具體實施方式
對本發(fā)明作進一步的描述如圖7所示,一種無襯線字形筆畫接合處的對齊方法,包括以下步驟(1)生成由無襯線字形組成的字庫字庫中的字形由部件組合而成,部件由筆畫組合而成;所述的筆畫是按TrueType字形格式由坐標點描述的圖形;所述的部件是按TrueType組合字形格式由一組筆畫描述的圖形;所述的字形是按TrueType組合字形格式,由一個或一組部件或筆畫描述的圖形;(2)對字庫中的無襯線字形和部件的筆畫接合處進行對齊;對字庫中的無襯線字形筆畫接合處進行對齊時,如果兩個或兩個以上的不同筆畫有交接,其交接處輪廓邊緣有相接并有屬于同一直線的輪廓線,則將筆畫交接處應該對齊的輪廓線的端點的縱坐標或橫坐標設為相等,并將筆畫交接處進行對齊時應以交接處的輪廓線中位置對字形影響最大的輪廓線的節(jié)點為基準點,其它輪廓線的節(jié)點向基準點對齊,以使這些輪廓線保持處于同一直線的狀態(tài),具體采用如下方法1)如果部件或字形中兩個不同筆畫的水平或垂直輪廓線在筆畫交接處位于同一條直線上并有部分重合時,則對兩條水平或垂直線段進行對齊時,采用指定兩條輪廓線兩端的四個節(jié)點的縱坐標或橫坐標相同,具體方法是指定其中一個節(jié)點的縱坐標或橫坐標在光柵化時指向最近的格點,指定另外三個節(jié)點的縱坐標或橫坐標與第一個節(jié)點的縱坐標或橫坐標相同;如圖4所示,由于筆畫6和筆畫7交接,需要讓節(jié)點8和節(jié)點9構(gòu)成的輪廓線與節(jié)點10和節(jié)點11構(gòu)成的輪廓線對齊,在進行該輪廓線對齊時以對最終對字形影響最大的坐標參數(shù)為基準,讓其它點的坐標值與該點坐標值相等,如圖4所示,由于節(jié)點8和節(jié)點9構(gòu)成的輪廓線的Y坐標對字形影響較大,因此以節(jié)點8為基準點,節(jié)點8所在的縱坐標為基準坐標,其它點的坐標參數(shù)與該基準點的坐標參數(shù)相同即可;如圖5所示,對節(jié)點8、9、10、11加對齊標記的指令如下(假設節(jié)點在字形中的序號與圖中標號相同)//對齊指令函數(shù)
1 PUSHB
//對齊指令函數(shù)序號為1FDEF //定義對齊指令函數(shù)序號為1…… //函數(shù)內(nèi)容,流程見圖5ENDF//調(diào)用函數(shù)nSPVTCA
9 10 11 8 PUSHB[3]1 PUSHB
CALL2)如圖6所示,如果兩個以上不同筆畫的水平或垂直輪廓線在筆畫交接處位于同一條直線上并有部分重合時,則筆畫交接處的所有輪廓線都需要對齊。多條輪廓線對齊和兩條線段對齊相似,選擇一個節(jié)點做基準點,其它點與基準點對齊。圖6中,12-17均為輪廓線的節(jié)點,由于節(jié)點13和16構(gòu)成的輪廓線的Y坐標對字形影響較大,所以選擇節(jié)點13或16為基準點,其他節(jié)點12、14、15、17與節(jié)點13或16對齊。
本實施例中,對字庫中的無襯線字形和部件的筆畫接合處進行對齊時,為了減少筆畫輪廓的數(shù)據(jù)量,保持字形質(zhì)量,將筆畫“折”拆分為“橫”、“豎”或者“橫”、“撇”,并在筆畫交接處進行對齊,這樣可以避免復雜筆畫因變倍時引起筆畫粗細的改變而導致字形質(zhì)量的降低。
本實施例中,對字庫中的無襯線字形和部件的筆畫接合處進行對齊時,為了減少字庫的數(shù)據(jù)量,對于漢字中重復使用較多的偏旁部首(如“钅”字旁),采用預組合部件的方法,即先用筆畫組合成部件,如由筆畫撇、橫和豎提等組合成部件“钅”旁;然后再用部件組合成漢字字形,如由“钅”旁組合成“鐵”字,這樣可以提高重復使用率。例如,在實際字庫中,使用較多的幾個部件“艸”使用了860次,“木”使用了666次,“扌”使用了651次,“釒”旁使用了439次。如果這些部件沒有預組合,每個字中都用原始筆畫拼成這些部件,僅這幾個部件就會增加八千多次的筆畫引用,使字庫數(shù)據(jù)量增加很多。
如圖3和圖4所示,對于無襯線字形筆畫接合處進行對齊前和對齊后的顯示效果是很明顯的。
本發(fā)明所述的方法并不限于具體實施方式
中所述的實施例,本領(lǐng)域技術(shù)人員根據(jù)本發(fā)明的技術(shù)方案得出其他的實施方式,同樣屬于本發(fā)明的技術(shù)創(chuàng)新范圍。
權(quán)利要求
1.一種無襯線字形筆畫接合處的對齊方法,包括以下步驟(1)生成字庫所述字庫中的字形是無襯線字形,字形由部件組合而成,部件由筆畫組合而成;(2)對字庫中無襯線字形和部件的筆畫接合處進行對齊。
2.如權(quán)利要求1所述的一種無襯線字形筆畫接合處的對齊方法,其特征是步驟(1)中,所述的筆畫是按TrueType字形格式由坐標點描述的圖形,所述的部件是按TrueType組合字形格式由一組筆畫描述的圖形,所述的字形是按TrueType組合字形格式,由一個或一組部件或筆畫描述的圖形。
3.如權(quán)利要求1或2所述的一種無襯線字形筆畫接合處的對齊方法,其特征是步驟(2)中,對字庫中的無襯線字形和部件的筆畫接合處進行對齊時,如果兩個或兩個以上的不同筆畫有交接,其交接處輪廓邊緣有相接并屬于同一直線的輪廓線,則將筆畫交接處應該對齊的輪廓線的節(jié)點的橫坐標或縱坐標設為相等,使其保持處于同一直線的狀態(tài),所述的輪廓線的節(jié)點是指該輪廓線的端點。
4.如權(quán)利要求3所述的一種無襯線字形筆畫接合處的對齊方法,其特征是對字庫中的無襯線字形和部件的筆畫接合處進行對齊時,具體采用如下方法1)如果兩個不同筆畫的水平或垂直輪廓線在筆畫交接處位于同一條直線上并有部分重合時,則對兩條水平或垂直輪廓線進行對齊時,指定兩條輪廓線兩端的四個節(jié)點的縱坐標或橫坐標相同;2)如果兩個以上不同筆畫的水平或垂直輪廓線在筆畫交接處位于同一條直線上并有部分重合時,則筆畫交接處的所有輪廓線都需要對齊,選擇一個節(jié)點做基準點,其它節(jié)點與基準點對齊。
5.如權(quán)利要求4所述的一種無襯線字形筆畫接合處的對齊方法,其特征是步驟1)中指定兩條輪廓線兩端的四個節(jié)點的縱坐標或橫坐標相同時,首先指定其中一個節(jié)點的縱坐標或橫坐標在光柵化時指向最近的格點,然后指定另外三個節(jié)點的縱坐標或橫坐標與第一個節(jié)點的縱坐標或橫坐標相同。
6.如權(quán)利要求4所述的一種無襯線字形筆畫接合處的對齊方法,其特征是將筆畫交接處的輪廓線進行對齊時應以相接輪廓線中位置對字形影響最大的輪廓線的節(jié)點為基準點,其它輪廓線的節(jié)點與該基準點對齊。
7.如權(quán)利要求1或2所述的一種無襯線字形筆畫接合處的對齊方法,其特征是步驟(2)中,對字庫中的無襯線字形和部件的筆畫接合處進行對齊時,先將筆畫“折”拆分為“橫”、“豎”或者“橫”、“撇”,然后在筆畫交接處進行對齊。
8.如權(quán)利要求1或2所述的一種無襯線字形筆畫接合處的對齊方法,其特征是步驟(2)中,對字庫中的無襯線字形筆畫接合處進行對齊時,對于漢字中重復使用較多的偏旁部首,采用預組合部件的方法,即先用筆畫組合成部件,然后再用部件組合成漢字字形。
9.如權(quán)利要求6所述的一種無襯線字形筆畫接合處的對齊方法,其特征是步驟(2)中,對字庫中的無襯線字形和部件的筆畫接合處進行對齊時,先將筆畫“折”拆分為“橫”、“豎”或者“橫”、“撇”,然后在筆畫交接處進行對齊;對于漢字中重復使用較多的偏旁部首,采用預組合部件的方法,即先用筆畫組合成部件,然后再用部件組合成漢字字形。
全文摘要
本發(fā)明涉及一種無襯線字形筆畫接合處的對齊方法,屬于計算機字形信息處理領(lǐng)域?,F(xiàn)有技術(shù)中,用筆畫組合生成的無襯線字形常在筆畫接合處發(fā)生因計算誤差引起的錯位,視覺效果差,并且無法用簡單筆畫進行組字,字庫占用空間大。本發(fā)明通過對不同筆畫的接合處采用強制對齊的方式,以保證字形的正確顯示,具體方式為如果兩個或多個不同筆畫有交接,其交接處輪廓邊緣有相接并屬于同一直線的輪廓線,則對輪廓線進行對齊,使這些輪廓線保持處于同一直線的狀態(tài)。采用本發(fā)明所述的方法,可以用最簡單的筆畫組合生成無襯線漢字字形,并能正確顯示,不會出現(xiàn)筆畫交接處的錯位現(xiàn)象,提高了字形質(zhì)量,同時也減少了字庫占用的空間。
文檔編號G06F17/22GK1952924SQ20061011474
公開日2007年4月25日 申請日期2006年11月22日 優(yōu)先權(quán)日2006年11月22日
發(fā)明者唐英敏 申請人:北京北大方正電子有限公司, 北京大學, 北大方正集團有限公司