本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體而言,涉及一種空心字庫(kù)生成方法和一種空心字庫(kù)生成系統(tǒng)。
背景技術(shù):
空心字,又名雙鉤書法,所謂的雙鉤書法,是指以單線沿其筆劃的兩側(cè)外延以細(xì)線鉤出,這些字體內(nèi)部為空心。早在唐代時(shí)期,褚遂良、虞世南臨摹《蘭亭序》時(shí),就采用了雙鉤的臨摹技法。此后,歷代文人集字、臨帖、金石學(xué)家集字、收藏古拓本,為后人留下了豐富的資料。這些字體只保留輪廓線,而字體內(nèi)部為空心,古代學(xué)習(xí)優(yōu)秀書法作品的手段,隨著時(shí)代的發(fā)展,逐漸為社會(huì)所重視,漸漸發(fā)展成為一類獨(dú)立的藝術(shù)字體和新的設(shè)計(jì)表現(xiàn)形式。
空心字,既是一門藝術(shù),又是一種實(shí)用技術(shù)。作為書法藝術(shù)的一個(gè)種類,其流暢不羈的線條,均勻鑲邊的藝術(shù)形式,黑白對(duì)比強(qiáng)烈的反差,在形成視覺(jué)沖擊的同時(shí),給人以愉悅的美感。其實(shí)用性更為廣泛,裝飾效果尤其顯著,應(yīng)用范圍除廣告外,還可用于陶瓷、刺繡、雕刻、印刷、牌匾、室內(nèi)裝修、收藏等多個(gè)生活和工業(yè)領(lǐng)域。
然而,目前我們雖然可以借助一些排版軟件,比如word、photoshop等制作空心字,但是通過(guò)軟件渲染的空心字,其顯示效果不好。另外,目前的字庫(kù)廠商具有的空心字庫(kù)種類非常少,不便于用戶的使用。
因此需要一種新的技術(shù)方案,可以快速生成顯示效果優(yōu)秀的空心字庫(kù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明正是基于上述問(wèn)題,提出了一種新的技術(shù)方案,可以快速生成顯示效果優(yōu)秀的空心字庫(kù)。
有鑒于此,本發(fā)明的一方面提出了一種空心字庫(kù)生成方法,包括:獲取同一架構(gòu)的粗體字庫(kù)和細(xì)體字庫(kù);將所述粗體字庫(kù)的粗體字符與所述細(xì)體字庫(kù)中的字符編碼相同的細(xì)體字符進(jìn)行疊加,生成疊加字符;對(duì)所述疊加字符中的細(xì)體字符進(jìn)行輪廓反向處理,以使所述疊加字符轉(zhuǎn)變?yōu)橹锌盏目招淖址?;將所述空心字符存?chǔ)為空心字庫(kù)。
在該技術(shù)方案中,對(duì)于同一種架構(gòu)的每個(gè)字符編碼,可以將該字符編碼對(duì)應(yīng)的粗體字符和細(xì)體字符進(jìn)行疊加,并在疊加后將細(xì)體字符進(jìn)行輪廓反向,由于同一種架構(gòu)的粗體字符與細(xì)體字符骨架相同,粗細(xì)不同,故該粗體字符往往能完全覆蓋其對(duì)應(yīng)的細(xì)體字符,故可以順利生成以粗體字符為外輪廓的空心字符,從而得到空心字庫(kù)。通過(guò)該技術(shù)方案,提供了一種新的生成空心字庫(kù)的方案,避免了相關(guān)技術(shù)中因軟件渲染而導(dǎo)致空心字符顯示效果不佳的缺陷,既提升了生成空心字庫(kù)的便利性,也優(yōu)化了空心字符的顯示效果。
在上述技術(shù)方案中,優(yōu)選地,在所述對(duì)所述疊加字符中的細(xì)體字符進(jìn)行輪廓反向處理之前,還包括:檢測(cè)所述疊加字符中的所述細(xì)體字符的輪廓和所述粗體字符的輪廓是否存在交叉;當(dāng)檢測(cè)結(jié)果為是時(shí),對(duì)所述細(xì)體字符的輪廓進(jìn)行調(diào)整,以去掉所述交叉,以供在所述細(xì)體字符的輪廓被所述粗體字符的輪廓完全覆蓋后對(duì)所述細(xì)體字符進(jìn)行輪廓反向處理;當(dāng)所述檢測(cè)結(jié)果為否時(shí),直接對(duì)所述細(xì)體字符進(jìn)行輪廓反向處理。
在該技術(shù)方案中,雖然粗體字符能覆蓋其對(duì)應(yīng)的細(xì)體字符,但有時(shí)也會(huì)有偏移、筆畫過(guò)長(zhǎng)等情況造成粗體字符與細(xì)體字符的輪廓產(chǎn)生交叉,為了保證空心字符的美觀性和統(tǒng)一性,當(dāng)檢測(cè)出粗體字符與細(xì)體字符的輪廓具有交叉時(shí),應(yīng)消除該交叉后再進(jìn)行輪廓反向處理。
在上述任一技術(shù)方案中,優(yōu)選地,所述對(duì)所述細(xì)體字符的輪廓進(jìn)行調(diào)整,包括:確定所述交叉的類型,其中,所述交叉的類型包括筆端交叉類型和/或筆畫交叉類型;當(dāng)所述交叉的類型包括所述筆端交叉類型時(shí),將所述交叉處的所述細(xì)體字符的筆端與對(duì)應(yīng)的所述粗體字符的筆端的距離調(diào)整至預(yù)定筆端距離閾值。
在該技術(shù)方案中,交叉的類型包括但不限于筆端交叉類型和/或筆畫 交叉類型,其中,筆端指的是筆畫的任一端,對(duì)于筆端交叉類型,在細(xì)體字符的筆端超出粗體字符的筆端處的輪廓時(shí),可以根據(jù)預(yù)定筆端距離閾值,將細(xì)體字符的筆端進(jìn)行縮短,使其與粗體字符的筆端的距離小于或等于預(yù)定筆端距離閾值。通過(guò)該技術(shù)方案,能夠自動(dòng)對(duì)疊加后的字符的交叉情況進(jìn)行調(diào)整,避免筆端交叉,從而進(jìn)一步提升了空心字符的美觀性。
在上述任一技術(shù)方案中,優(yōu)選地,所述對(duì)所述細(xì)體字符的輪廓進(jìn)行調(diào)整,還包括:當(dāng)所述交叉的類型包括所述筆畫交叉類型時(shí),判斷所述細(xì)體字符的輪廓位移任一向量后是否能夠完全被所述粗體字符的輪廓完全覆蓋;當(dāng)判斷結(jié)果為是時(shí),將所述細(xì)體字符的輪廓位移所述任一向量;當(dāng)所述判斷結(jié)果為是時(shí),減小所述交叉處的所述細(xì)體字符的筆畫的寬度,以使所述交叉處的所述細(xì)體字符的筆畫交叉邊緣與所述粗體字符的筆畫交叉邊緣的距離調(diào)整至預(yù)定筆畫距離閾值。
在該技術(shù)方案中,對(duì)于筆畫交叉類型的交叉,首先需判斷細(xì)體字符的輪廓位移任一向量后是否就能完全被粗體字符的輪廓覆蓋,如果是,說(shuō)明筆畫交叉是因?yàn)榀B加位置不準(zhǔn)確造成的,只要將細(xì)體字符整體位移該任一向量即可。而如果位移任一向量后仍無(wú)法完全被粗體字符的輪廓覆蓋,則需要調(diào)整交叉處的細(xì)體字符的筆畫與粗體字符的筆畫的距離,使其調(diào)整至預(yù)定筆畫距離閾值內(nèi),從而可以消除筆畫交叉,從而進(jìn)一步提升了空心字符的美觀性。
在上述任一技術(shù)方案中,優(yōu)選地,具有不同大小的基數(shù)的字庫(kù)分別具有對(duì)應(yīng)的預(yù)定筆端距離閾值和預(yù)定筆畫距離閾值,所述字庫(kù)的基數(shù)越大,所述字庫(kù)中的字形輪廓數(shù)據(jù)的取值范圍越大,所述字庫(kù)對(duì)應(yīng)的所述預(yù)定筆端距離閾值和所述預(yù)定筆畫距離閾值越大。
在該技術(shù)方案中,不同大小的基數(shù)其字符的輪廓坐標(biāo)點(diǎn)的取值范圍也不同,基數(shù)越大,字符輪廓坐標(biāo)取值范圍越大,可以設(shè)置更精確點(diǎn)的坐標(biāo)。故系統(tǒng)中需要為不同大小的基數(shù)預(yù)置不同的預(yù)定筆端距離閾值和預(yù)定筆畫距離閾值,基數(shù)越大,設(shè)置的預(yù)定筆端距離閾值和預(yù)定筆畫距離閾值也越大,這樣,在生成空心字庫(kù)時(shí),可以按照對(duì)應(yīng)的預(yù)定筆端距離閾值和預(yù)定筆畫距離閾值進(jìn)行交叉調(diào)整,從而充分考慮到不同基數(shù)的實(shí)際情況, 更加適應(yīng)實(shí)際需要,進(jìn)一步增加了空心字庫(kù)生成的便利性與實(shí)用性。
本發(fā)明的另一方面提出了一種空心字庫(kù)生成系統(tǒng),包括:字庫(kù)獲取單元,獲取同一架構(gòu)的粗體字庫(kù)和細(xì)體字庫(kù);字符疊加單元,將所述粗體字庫(kù)的粗體字符與所述細(xì)體字庫(kù)中的字符編碼相同的細(xì)體字符進(jìn)行疊加,生成疊加字符;輪廓反向處理單元,對(duì)所述疊加字符中的細(xì)體字符進(jìn)行輪廓反向處理,以使所述疊加字符轉(zhuǎn)變?yōu)橹锌盏目招淖址?;字?kù)生成單元,將所述空心字符存儲(chǔ)為空心字庫(kù)。
在該技術(shù)方案中,對(duì)于同一種架構(gòu)的每個(gè)字符編碼,可以將該字符編碼對(duì)應(yīng)的粗體字符和細(xì)體字符進(jìn)行疊加,并在疊加后將細(xì)體字符進(jìn)行輪廓反向,由于同一種架構(gòu)的粗體字符與細(xì)體字符骨架相同,粗細(xì)不同,故該粗體字符往往能完全覆蓋其對(duì)應(yīng)的細(xì)體字符,故可以順利生成以粗體字符為外輪廓的空心字符,從而得到空心字庫(kù)。通過(guò)該技術(shù)方案,提供了一種新的生成空心字庫(kù)的方案,避免了相關(guān)技術(shù)中因軟件渲染而導(dǎo)致空心字符顯示效果不佳的缺陷,既提升了生成空心字庫(kù)的便利性,也優(yōu)化了空心字符的顯示效果。
在上述技術(shù)方案中,優(yōu)選地,還包括:交叉檢測(cè)單元,在所述對(duì)所述疊加字符中的細(xì)體字符進(jìn)行輪廓反向處理之前,檢測(cè)所述疊加字符中的所述細(xì)體字符的輪廓和所述粗體字符的輪廓是否存在交叉;輪廓調(diào)整單元,當(dāng)檢測(cè)結(jié)果為是時(shí),對(duì)所述細(xì)體字符的輪廓進(jìn)行調(diào)整,以去掉所述交叉,以供在所述細(xì)體字符的輪廓被所述粗體字符的輪廓完全覆蓋后對(duì)所述細(xì)體字符進(jìn)行輪廓反向處理,當(dāng)所述檢測(cè)結(jié)果為否時(shí),直接對(duì)所述細(xì)體字符進(jìn)行輪廓反向處理。
在該技術(shù)方案中,雖然粗體字符能覆蓋其對(duì)應(yīng)的細(xì)體字符,但有時(shí)也會(huì)有偏移、筆畫過(guò)長(zhǎng)等情況造成粗體字符與細(xì)體字符的輪廓產(chǎn)生交叉,為了保證空心字符的美觀性和統(tǒng)一性,當(dāng)檢測(cè)出粗體字符與細(xì)體字符的輪廓具有交叉時(shí),應(yīng)消除該交叉后再進(jìn)行輪廓反向處理。
在上述任一技術(shù)方案中,優(yōu)選地,所述輪廓調(diào)整單元包括:交叉類型確定單元,確定所述交叉的類型,其中,所述交叉的類型包括筆端交叉類型和/或筆畫交叉類型;筆端距離調(diào)整單元,當(dāng)所述交叉的類型包括所述 筆端交叉類型時(shí),將所述交叉處的所述細(xì)體字符的筆端與對(duì)應(yīng)的所述粗體字符的筆端的距離調(diào)整至預(yù)定筆端距離閾值。
在該技術(shù)方案中,交叉的類型包括但不限于筆端交叉類型和/或筆畫交叉類型,其中,筆端指的是筆畫的任一端,對(duì)于筆端交叉類型,在細(xì)體字符的筆端超出粗體字符的筆端處的輪廓時(shí),可以根據(jù)預(yù)定筆端距離閾值,將細(xì)體字符的筆端進(jìn)行縮短,使其與粗體字符的筆端的距離小于或等于預(yù)定筆端距離閾值。通過(guò)該技術(shù)方案,能夠自動(dòng)對(duì)疊加后的字符的交叉情況進(jìn)行調(diào)整,避免筆端交叉,從而進(jìn)一步提升了空心字符的美觀性。
在上述任一技術(shù)方案中,優(yōu)選地,所述輪廓調(diào)整單元還包括:判斷單元,當(dāng)所述交叉的類型包括所述筆畫交叉類型時(shí),判斷所述細(xì)體字符的輪廓位移任一向量后是否能夠完全被所述粗體字符的輪廓完全覆蓋;輪廓整體位移單元,當(dāng)判斷結(jié)果為是時(shí),將所述細(xì)體字符的輪廓位移所述任一向量;筆畫距離調(diào)整單元,當(dāng)所述判斷結(jié)果為是時(shí),減小所述交叉處的所述細(xì)體字符的筆畫的寬度,以使所述交叉處的所述細(xì)體字符的筆畫交叉邊緣與所述粗體字符的筆畫交叉邊緣的距離調(diào)整至預(yù)定筆畫距離閾值。
在該技術(shù)方案中,對(duì)于筆畫交叉類型的交叉,首先需判斷細(xì)體字符的輪廓位移任一向量后是否就能完全被粗體字符的輪廓覆蓋,如果是,說(shuō)明筆畫交叉是因?yàn)榀B加位置不準(zhǔn)確造成的,只要將細(xì)體字符整體位移該任一向量即可。而如果位移任一向量后仍無(wú)法完全被粗體字符的輪廓覆蓋,則需要調(diào)整交叉處的細(xì)體字符的筆畫與粗體字符的筆畫的距離,使其調(diào)整至預(yù)定筆畫距離閾值內(nèi),從而可以消除筆畫交叉,從而進(jìn)一步提升了空心字符的美觀性。
在上述任一技術(shù)方案中,優(yōu)選地,具有不同大小的基數(shù)的字庫(kù)分別具有對(duì)應(yīng)的預(yù)定筆端距離閾值和預(yù)定筆畫距離閾值,所述字庫(kù)的基數(shù)越大,所述字庫(kù)中的字形輪廓數(shù)據(jù)的取值范圍越大,所述字庫(kù)對(duì)應(yīng)的所述預(yù)定筆端距離閾值和所述預(yù)定筆畫距離閾值越大。
在該技術(shù)方案中,不同大小的基數(shù)其字符的輪廓坐標(biāo)點(diǎn)的取值范圍也不同,基數(shù)越大,字符輪廓坐標(biāo)取值范圍越大,可以設(shè)置更精確點(diǎn)的坐標(biāo)。故系統(tǒng)中需要為不同大小的基數(shù)預(yù)置不同的預(yù)定筆端距離閾值和預(yù)定 筆畫距離閾值,基數(shù)越大,設(shè)置的預(yù)定筆端距離閾值和預(yù)定筆畫距離閾值也越大,這樣,在生成空心字庫(kù)時(shí),可以按照對(duì)應(yīng)的預(yù)定筆端距離閾值和預(yù)定筆畫距離閾值進(jìn)行交叉調(diào)整,從而充分考慮到不同基數(shù)的實(shí)際情況,更加適應(yīng)實(shí)際需要,進(jìn)一步增加了空心字庫(kù)生成的便利性與實(shí)用性。
通過(guò)以上技術(shù)方案,提供了一種新的生成空心字庫(kù)的方案,避免了相關(guān)技術(shù)中因軟件渲染而導(dǎo)致空心字符顯示效果不佳的缺陷,既提升了生成空心字庫(kù)的便利性,也優(yōu)化了空心字符的顯示效果。
附圖說(shuō)明
圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的空心字庫(kù)生成方法的流程圖;
圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的空心字庫(kù)生成系統(tǒng)的框圖;
圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的空心字符的示意圖;
圖4示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的疊加后具有筆端交叉缺陷的空心字符的示意圖;
圖5示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的疊加后具有筆畫交叉缺陷的空心字符的示意圖;
圖6至圖9示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的多種粗體字符與細(xì)體字符生成的空心字符的示意圖。
具體實(shí)施方式
為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)的實(shí)施例及實(shí)施例中的特征可以相互組合。
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來(lái)實(shí)施,因此,本發(fā)明的保護(hù)范圍并不受下面公開的具體實(shí)施例的限制。
圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的空心字庫(kù)生成方法的流程圖。
如圖1所示,根據(jù)本發(fā)明的一個(gè)實(shí)施例的空心字庫(kù)生成方法,包括:
步驟102,獲取同一架構(gòu)的粗體字庫(kù)和細(xì)體字庫(kù);
步驟104,將所述粗體字庫(kù)的粗體字符與所述細(xì)體字庫(kù)中的字符編碼相同的細(xì)體字符進(jìn)行疊加,生成疊加字符;
步驟106,對(duì)所述疊加字符中的細(xì)體字符進(jìn)行輪廓反向處理,以使所述疊加字符轉(zhuǎn)變?yōu)橹锌盏目招淖址?/p>
步驟108,將所述空心字符存儲(chǔ)為空心字庫(kù)。
在該技術(shù)方案中,對(duì)于同一種架構(gòu)的每個(gè)字符編碼,可以將該字符編碼對(duì)應(yīng)的粗體字符和細(xì)體字符進(jìn)行疊加,并在疊加后將細(xì)體字符進(jìn)行輪廓反向,由于同一種架構(gòu)的粗體字符與細(xì)體字符骨架相同,粗細(xì)不同,故該粗體字符往往能完全覆蓋其對(duì)應(yīng)的細(xì)體字符,故可以順利生成以粗體字符為外輪廓的空心字符,從而得到空心字庫(kù)。通過(guò)該技術(shù)方案,提供了一種新的生成空心字庫(kù)的方案,避免了相關(guān)技術(shù)中因軟件渲染而導(dǎo)致空心字符顯示效果不佳的缺陷,既提升了生成空心字庫(kù)的便利性,也優(yōu)化了空心字符的顯示效果。
在上述技術(shù)方案中,優(yōu)選地,在步驟106之前,還包括:檢測(cè)所述疊加字符中的所述細(xì)體字符的輪廓和所述粗體字符的輪廓是否存在交叉;當(dāng)檢測(cè)結(jié)果為是時(shí),對(duì)所述細(xì)體字符的輪廓進(jìn)行調(diào)整,以去掉所述交叉,以供在所述細(xì)體字符的輪廓被所述粗體字符的輪廓完全覆蓋后對(duì)所述細(xì)體字符進(jìn)行輪廓反向處理;當(dāng)所述檢測(cè)結(jié)果為否時(shí),直接對(duì)所述細(xì)體字符進(jìn)行輪廓反向處理。
在該技術(shù)方案中,雖然粗體字符能覆蓋其對(duì)應(yīng)的細(xì)體字符,但有時(shí)也會(huì)有偏移、筆畫過(guò)長(zhǎng)等情況造成粗體字符與細(xì)體字符的輪廓產(chǎn)生交叉,為了保證空心字符的美觀性和統(tǒng)一性,當(dāng)檢測(cè)出粗體字符與細(xì)體字符的輪廓具有交叉時(shí),應(yīng)消除該交叉后再進(jìn)行輪廓反向處理。
在上述任一技術(shù)方案中,優(yōu)選地,所述對(duì)所述細(xì)體字符的輪廓進(jìn)行調(diào)整,包括:確定所述交叉的類型,其中,所述交叉的類型包括筆端交叉類型和/或筆畫交叉類型;當(dāng)所述交叉的類型包括所述筆端交叉類型時(shí),將所述交叉處的所述細(xì)體字符的筆端與對(duì)應(yīng)的所述粗體字符的筆端的距離調(diào)整至預(yù)定筆端距離閾值。
在該技術(shù)方案中,交叉的類型包括但不限于筆端交叉類型和/或筆畫 交叉類型,其中,筆端指的是筆畫的任一端,對(duì)于筆端交叉類型,在細(xì)體字符的筆端超出粗體字符的筆端處的輪廓時(shí),可以根據(jù)預(yù)定筆端距離閾值,將細(xì)體字符的筆端進(jìn)行縮短,使其與粗體字符的筆端的距離小于或等于預(yù)定筆端距離閾值。通過(guò)該技術(shù)方案,能夠自動(dòng)對(duì)疊加后的字符的交叉情況進(jìn)行調(diào)整,避免筆端交叉,從而進(jìn)一步提升了空心字符的美觀性。
在上述任一技術(shù)方案中,優(yōu)選地,所述對(duì)所述細(xì)體字符的輪廓進(jìn)行調(diào)整,還包括:當(dāng)所述交叉的類型包括所述筆畫交叉類型時(shí),判斷所述細(xì)體字符的輪廓位移任一向量后是否能夠完全被所述粗體字符的輪廓完全覆蓋;當(dāng)判斷結(jié)果為是時(shí),將所述細(xì)體字符的輪廓位移所述任一向量;當(dāng)所述判斷結(jié)果為是時(shí),減小所述交叉處的所述細(xì)體字符的筆畫的寬度,以使所述交叉處的所述細(xì)體字符的筆畫交叉邊緣與所述粗體字符的筆畫交叉邊緣的距離調(diào)整至預(yù)定筆畫距離閾值。
在該技術(shù)方案中,對(duì)于筆畫交叉類型的交叉,首先需判斷細(xì)體字符的輪廓位移任一向量后是否就能完全被粗體字符的輪廓覆蓋,如果是,說(shuō)明筆畫交叉是因?yàn)榀B加位置不準(zhǔn)確造成的,只要將細(xì)體字符整體位移該任一向量即可。而如果位移任一向量后仍無(wú)法完全被粗體字符的輪廓覆蓋,則需要調(diào)整交叉處的細(xì)體字符的筆畫與粗體字符的筆畫的距離,使其調(diào)整至預(yù)定筆畫距離閾值內(nèi),從而可以消除筆畫交叉,從而進(jìn)一步提升了空心字符的美觀性。
在上述任一技術(shù)方案中,優(yōu)選地,具有不同大小的基數(shù)的字庫(kù)分別具有對(duì)應(yīng)的預(yù)定筆端距離閾值和預(yù)定筆畫距離閾值,所述字庫(kù)的基數(shù)越大,所述字庫(kù)中的字形輪廓數(shù)據(jù)的取值范圍越大,所述字庫(kù)對(duì)應(yīng)的所述預(yù)定筆端距離閾值和所述預(yù)定筆畫距離閾值越大。
在該技術(shù)方案中,不同大小的基數(shù)其字符的輪廓坐標(biāo)點(diǎn)的取值范圍也不同,基數(shù)越大,字符輪廓坐標(biāo)取值范圍越大,可以設(shè)置更精確點(diǎn)的坐標(biāo)。故系統(tǒng)中需要為不同大小的基數(shù)預(yù)置不同的預(yù)定筆端距離閾值和預(yù)定筆畫距離閾值,基數(shù)越大,設(shè)置的預(yù)定筆端距離閾值和預(yù)定筆畫距離閾值也越大,這樣,在生成空心字庫(kù)時(shí),可以按照對(duì)應(yīng)的預(yù)定筆端距離閾值和預(yù)定筆畫距離閾值進(jìn)行交叉調(diào)整,從而充分考慮到不同基數(shù)的實(shí)際情況, 更加適應(yīng)實(shí)際需要,進(jìn)一步增加了空心字庫(kù)生成的便利性與實(shí)用性。
圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的空心字庫(kù)生成系統(tǒng)的框圖。
如圖2所示根據(jù)本發(fā)明的一個(gè)實(shí)施例的空心字庫(kù)生成系統(tǒng)200,包括字庫(kù)獲取單元202、字符疊加單元204、輪廓反向處理單元206和字庫(kù)生成單元208,其中,字庫(kù)獲取單元202用于獲取同一架構(gòu)的粗體字庫(kù)和細(xì)體字庫(kù);字符疊加單元204用于將粗體字庫(kù)的粗體字符與細(xì)體字庫(kù)中的字符編碼相同的細(xì)體字符進(jìn)行疊加,生成疊加字符;輪廓反向處理單元206用于對(duì)疊加字符中的細(xì)體字符進(jìn)行輪廓反向處理,以使疊加字符轉(zhuǎn)變?yōu)橹锌盏目招淖址?;字?kù)生成單元208用于將空心字符存儲(chǔ)為空心字庫(kù)。
在該技術(shù)方案中,對(duì)于同一種架構(gòu)的每個(gè)字符編碼,可以將該字符編碼對(duì)應(yīng)的粗體字符和細(xì)體字符進(jìn)行疊加,并在疊加后將細(xì)體字符進(jìn)行輪廓反向,由于同一種架構(gòu)的粗體字符與細(xì)體字符骨架相同,粗細(xì)不同,故該粗體字符往往能完全覆蓋其對(duì)應(yīng)的細(xì)體字符,故可以順利生成以粗體字符為外輪廓的空心字符,從而得到空心字庫(kù)。通過(guò)該技術(shù)方案,提供了一種新的生成空心字庫(kù)的方案,避免了相關(guān)技術(shù)中因軟件渲染而導(dǎo)致空心字符顯示效果不佳的缺陷,既提升了生成空心字庫(kù)的便利性,也優(yōu)化了空心字符的顯示效果。
在上述技術(shù)方案中,優(yōu)選地,還包括:交叉檢測(cè)單元210,在對(duì)疊加字符中的細(xì)體字符進(jìn)行輪廓反向處理之前,檢測(cè)疊加字符中的細(xì)體字符的輪廓和粗體字符的輪廓是否存在交叉;輪廓調(diào)整單元212,當(dāng)檢測(cè)結(jié)果為是時(shí),對(duì)細(xì)體字符的輪廓進(jìn)行調(diào)整,以去掉交叉,以供在細(xì)體字符的輪廓被粗體字符的輪廓完全覆蓋后對(duì)細(xì)體字符進(jìn)行輪廓反向處理,當(dāng)檢測(cè)結(jié)果為否時(shí),直接對(duì)細(xì)體字符進(jìn)行輪廓反向處理。
在該技術(shù)方案中,雖然粗體字符能覆蓋其對(duì)應(yīng)的細(xì)體字符,但有時(shí)也會(huì)有偏移、筆畫過(guò)長(zhǎng)等情況造成粗體字符與細(xì)體字符的輪廓產(chǎn)生交叉,為了保證空心字符的美觀性和統(tǒng)一性,當(dāng)檢測(cè)出粗體字符與細(xì)體字符的輪廓具有交叉時(shí),應(yīng)消除該交叉后再進(jìn)行輪廓反向處理。
在上述任一技術(shù)方案中,優(yōu)選地,輪廓調(diào)整單元212包括:交叉類型確定單元2122,確定交叉的類型,其中,交叉的類型包括筆端交叉類型 和/或筆畫交叉類型;筆端距離調(diào)整單元2124,當(dāng)交叉的類型包括筆端交叉類型時(shí),將交叉處的細(xì)體字符的筆端與對(duì)應(yīng)的粗體字符的筆端的距離調(diào)整至預(yù)定筆端距離閾值。
在該技術(shù)方案中,交叉的類型包括但不限于筆端交叉類型和/或筆畫交叉類型,其中,筆端指的是筆畫的任一端,對(duì)于筆端交叉類型,在細(xì)體字符的筆端超出粗體字符的筆端處的輪廓時(shí),可以根據(jù)預(yù)定筆端距離閾值,將細(xì)體字符的筆端進(jìn)行縮短,使其與粗體字符的筆端的距離小于或等于預(yù)定筆端距離閾值。通過(guò)該技術(shù)方案,能夠自動(dòng)對(duì)疊加后的字符的交叉情況進(jìn)行調(diào)整,避免筆端交叉,從而進(jìn)一步提升了空心字符的美觀性。
在上述任一技術(shù)方案中,優(yōu)選地,輪廓調(diào)整單元212還包括:判斷單元2126,當(dāng)交叉的類型包括筆畫交叉類型時(shí),判斷細(xì)體字符的輪廓位移任一向量后是否能夠完全被粗體字符的輪廓完全覆蓋;輪廓整體位移單元2128,當(dāng)判斷結(jié)果為是時(shí),將細(xì)體字符的輪廓位移任一向量;筆畫距離調(diào)整單元,當(dāng)判斷結(jié)果為是時(shí),減小交叉處的細(xì)體字符的筆畫的寬度,以使交叉處的細(xì)體字符的筆畫交叉邊緣與粗體字符的筆畫交叉邊緣的距離調(diào)整至預(yù)定筆畫距離閾值。
在該技術(shù)方案中,對(duì)于筆畫交叉類型的交叉,首先需判斷細(xì)體字符的輪廓位移任一向量后是否就能完全被粗體字符的輪廓覆蓋,如果是,說(shuō)明筆畫交叉是因?yàn)榀B加位置不準(zhǔn)確造成的,只要將細(xì)體字符整體位移該任一向量即可。而如果位移任一向量后仍無(wú)法完全被粗體字符的輪廓覆蓋,則需要調(diào)整交叉處的細(xì)體字符的筆畫與粗體字符的筆畫的距離,使其調(diào)整至預(yù)定筆畫距離閾值內(nèi),從而可以消除筆畫交叉,從而進(jìn)一步提升了空心字符的美觀性。
在上述任一技術(shù)方案中,優(yōu)選地,具有不同大小的基數(shù)的字庫(kù)分別具有對(duì)應(yīng)的預(yù)定筆端距離閾值和預(yù)定筆畫距離閾值,所述字庫(kù)的基數(shù)越大,所述字庫(kù)中的字形輪廓數(shù)據(jù)的取值范圍越大,所述字庫(kù)對(duì)應(yīng)的所述預(yù)定筆端距離閾值和所述預(yù)定筆畫距離閾值越大。
在該技術(shù)方案中,不同大小的基數(shù)其字符的輪廓坐標(biāo)點(diǎn)的取值范圍也不同,基數(shù)越大,字符輪廓坐標(biāo)取值范圍越大,可以設(shè)置更精確點(diǎn)的坐 標(biāo)。故系統(tǒng)中需要為不同大小的基數(shù)預(yù)置不同的預(yù)定筆端距離閾值和預(yù)定筆畫距離閾值,基數(shù)越大,設(shè)置的預(yù)定筆端距離閾值和預(yù)定筆畫距離閾值也越大,這樣,在生成空心字庫(kù)時(shí),可以按照對(duì)應(yīng)的預(yù)定筆端距離閾值和預(yù)定筆畫距離閾值進(jìn)行交叉調(diào)整,從而充分考慮到不同基數(shù)的實(shí)際情況,更加適應(yīng)實(shí)際需要,進(jìn)一步增加了空心字庫(kù)生成的便利性與實(shí)用性。
下面結(jié)合圖3至圖9具體描述本發(fā)明的技術(shù)方案,其中,生成空心字庫(kù)包括以下步驟:
第一步:選定系列字的風(fēng)格(即架構(gòu)),并從選擇的系列字中選擇2款不同粗細(xì)的字庫(kù),如果需要空心字邊緣筆畫較粗,可選擇粗細(xì)差別較大的,反之,如果需要空心字邊緣筆畫較細(xì),選擇粗細(xì)差別較小的字庫(kù)即可。
第二步:設(shè)置細(xì)體字庫(kù)的字符筆端到粗體字庫(kù)的字符筆端的距離,即如圖3所示的d1,這個(gè)距離用于在細(xì)體字庫(kù)的字符超出粗體字庫(kù)的字符的筆端時(shí),使系統(tǒng)自動(dòng)調(diào)整筆端距離。
設(shè)置細(xì)體字庫(kù)的字符與粗體字庫(kù)的字符的筆畫的距離,即如圖3所示的d2,這個(gè)距離用于在細(xì)體字庫(kù)的字符的筆畫超出粗體字庫(kù)的字符的筆畫的情況下使系統(tǒng)調(diào)整細(xì)體字庫(kù)的字符的筆畫與粗體字庫(kù)的字符的筆畫的距離。
另外,對(duì)于不同基數(shù)的字符,其對(duì)應(yīng)的d1和d2不同。
第三步:獲取粗體字庫(kù)和細(xì)體字庫(kù)的所有字符編碼,只處理編碼相同的字符。由于是同一系列,因此,字庫(kù)的編碼字符集是相同的,也就是包含的字符個(gè)數(shù)及編碼完全相同,生成的空心字庫(kù)的編碼字符集和所選系列的編碼字符集完全相同。
第四步:按照字符編碼從小到大(或從大到小)的順序,依次生成空心字,并進(jìn)行保存。
第五步:將生成的空心字符的輪廓進(jìn)行交叉處理,提升空心字符的美觀性。
具體地,生成空心字符及進(jìn)行交叉處理的步驟如下:
首先找到編碼相同的粗體字符和細(xì)體字符,分別獲取每個(gè)字符包含的 所有封閉輪廓,然后,循環(huán)找到每個(gè)對(duì)應(yīng)的輪廓,也就是對(duì)應(yīng)的筆畫。
針對(duì)每個(gè)對(duì)應(yīng)的輪廓,判斷粗體字符和細(xì)體字符的輪廓是否存在交叉,如果不存在(如圖3),則可直接將細(xì)體字符的輪廓反向,以便于進(jìn)行中空處理后和粗體字符一起進(jìn)行保存成空心字。如果存在交叉,說(shuō)明細(xì)體字符的輪廓并不能完全被粗體字符的輪廓覆蓋,則需要進(jìn)行筆端和筆畫是否超出的判斷。
具體地,首先判斷是否是細(xì)體字符的筆端超出粗體字符的筆端,如圖4所示,如果判斷結(jié)果為是,則按照第二步設(shè)定的筆端距離d1,將細(xì)體字符的的筆端按照筆畫方向直接縮短,然后將細(xì)體字符的輪廓進(jìn)行反向處理,和粗體字符的輪廓一起保存為空心字。
而如果判斷是筆畫有交叉,則首先再判斷該輪廓通過(guò)上下左右位移后,是否能夠達(dá)到細(xì)體字符的筆畫被粗體字符的筆畫覆蓋,可以的話,將細(xì)體字符的輪廓方向反向處理后,進(jìn)行保存即可。否則,如圖5所示,則需要將超出粗體字符的筆畫那側(cè)的曲線進(jìn)行減細(xì),直至能夠完全覆蓋在粗體字符的筆畫中,并且滿足第二步設(shè)定的d2。
第六步:將生成的所有空心字符進(jìn)行轉(zhuǎn)庫(kù),生成一種全新的空心字庫(kù)。
本發(fā)明的效果在于,利用系列字庫(kù)的特點(diǎn),自動(dòng)生成一種空心美術(shù)字體,豐富了空心字庫(kù)的種類,且這種方法出來(lái)的空心字很有藝術(shù)感。
特別的,如果兩款字庫(kù)的架構(gòu)一致,多數(shù)粗體字符的筆畫能夠覆蓋細(xì)體字符的筆畫,雖然不屬于同一系列字,也可以自動(dòng)生成一種全新的空心字體。
圖6至圖9示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的多種粗體字符與細(xì)體字符生成的空心字符的示意圖。
其中,圖6中粗體字符為方正手繪_粗,細(xì)體字符為方正手繪_準(zhǔn);圖7中粗體字符為方正手繪_粗,細(xì)體字符為方正手繪_細(xì);圖8中粗體字符為方正黑隸_粗,細(xì)體字符為方正黑隸_纖;圖9中粗體字符為方正品尚粗黑,細(xì)體字符為方正品尚纖黑。如果需要空心字邊緣筆畫較粗,可選擇粗細(xì)差別較大的,反之,如果需要空心字邊緣筆畫較細(xì),選擇粗細(xì)差別較小 的字庫(kù)即可。
以上結(jié)合附圖詳細(xì)說(shuō)明了本發(fā)明的技術(shù)方案,通過(guò)本發(fā)明的技術(shù)方案,提供了一種新的生成空心字庫(kù)的方案,避免了相關(guān)技術(shù)中因軟件渲染而導(dǎo)致空心字符顯示效果不佳的缺陷,既提升了生成空心字庫(kù)的便利性,也優(yōu)化了空心字符的顯示效果。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。