熊 晶 栗青生 高 峰 吳琴霞
(安陽師范學(xué)院計算機與信息工程學(xué)院 河南 安陽 455000)
?
基于字形動態(tài)描述庫的Webfont漢字生成方法
熊晶栗青生高峰吳琴霞
(安陽師范學(xué)院計算機與信息工程學(xué)院河南 安陽 455000)
摘要現(xiàn)有的Webfont漢字生成方法,需要設(shè)計專門的字庫,工作量大且靈活性差。針對這一問題,將漢字特征點用字形動態(tài)描述庫記錄,在此基礎(chǔ)上提出一種新的Webfont漢字的自動生成方法。研究基于特征點描述的漢字筆畫提取、連接和優(yōu)化方法,并對比基于B樣條曲線和貝塞爾曲線的字形優(yōu)化效果。為方便用戶進行個性化字體生成,設(shè)計了用戶自定義字形優(yōu)化方法。實驗結(jié)果證明,基于漢字字形動態(tài)描述庫,用戶無需下載字庫,即可以在網(wǎng)頁上生成符合自身需求的Webfont漢字。
關(guān)鍵詞漢字字形計算網(wǎng)絡(luò)字體字形優(yōu)化
0引言
隨著互聯(lián)網(wǎng)、云計算及移動計算技術(shù)的不斷發(fā)展,人們對漢字的輸入和顯示有了新的需求,如個性化需求、多元審美需求、文化內(nèi)涵需求、機器書寫需求、安全性需求等。傳統(tǒng)的漢字生成技術(shù)已經(jīng)很難滿足這些需求,WebFont技術(shù)是解決這一問題的有力途徑。目前絕大多數(shù)的WebFont字體均是西文,而博大精深的中華文化,很大一部分是體現(xiàn)在漢字上的。但是在互聯(lián)網(wǎng)對社會生活影響越來越深刻的今天,漢字WebFont的研究和應(yīng)用卻明顯滯后,其主要原因有:① 針對某種字體,需要設(shè)計專門的字庫;② 漢字字體太大,在現(xiàn)有網(wǎng)絡(luò)帶寬環(huán)境下,中文網(wǎng)絡(luò)字體的顯示效率較差;③ 大部分優(yōu)秀的中文字體版權(quán)費用較高,不提供按需付費服務(wù)。基于漢字字形動態(tài)描述語言DCDL(Dynamic Character Description language)[1]來設(shè)計漢字WebFont可以有效彌補上述不足。DCDL非常適合在互聯(lián)網(wǎng)上使用,它使用漢字特征描述庫代替了漢字字庫。漢字特征描述庫存儲在服務(wù)器端,漢字的顯示通過客戶端或移動終端用戶的需求來實現(xiàn)。用戶無需安裝本地字庫,而是采用分布式字形描述存儲方式,可以充分發(fā)揮服務(wù)器端(或云端)的計算功能、控制功能和管理功能。
1漢字自動生成方法概述
針對傳統(tǒng)人工為主的漢字字形設(shè)計的不足,國內(nèi)外學(xué)者都在進行漢字字形的自動生成研究。主要成就包括基于書法規(guī)則的漢字字形生成技術(shù)[2]、基于筆劃特征的字形衍化方法[3]、基于形態(tài)學(xué)的字形自動生成方法[4]、基于曲線輪廓的漢字自動生成[5]、基于動態(tài)描述庫的漢字生成方法[1, 6]、基于IDS的漢字字形生成算法[7]等。研究者在傳統(tǒng)的漢字字形輪廓描述技術(shù)之外,開發(fā)出了很多和漢字自動生成有關(guān)的漢字字形描述技術(shù)。例如:香港浸會大學(xué)提出的HanGlyph[8]、國防科技大學(xué)提出的漢字數(shù)學(xué)表達式[9,10]、北京語言大學(xué)和內(nèi)蒙古師范大學(xué)提出的筆段網(wǎng)格字形描述[11,12]、美國加州大學(xué)伯克利分校提出的基于筆畫和漢字部件的字形描述語言CDL(Character Description language)[13]、日本京都大學(xué)的漢字自動生成技術(shù)[14]等。但是這些字形描述技術(shù)并沒有對漢字的生成過程進行深入研究,很難突出漢字獨特的個性特征和文化特征,更無法體現(xiàn)漢字的書寫和書法特征。安陽師范學(xué)院將漢字書寫過程作為重要描述特征,提出了一種新的動態(tài)字形描述語言DCDL。DCDL適合在互聯(lián)網(wǎng)上動態(tài)生成漢字,為漢字WebFont提供了技術(shù)基礎(chǔ)。文獻[1]研究了在動態(tài)字形描述庫基礎(chǔ)上的漢字自動生成技術(shù)。通過貝塞爾曲線對漢字骨架進行還原,但是其以每一個筆畫的貝塞爾曲線為研究內(nèi)容,并且沒有考慮動態(tài)字形描述庫在Webfont上的應(yīng)用。
WebFont即網(wǎng)絡(luò)字體,是指不使用本機字體而使用在線字體進行效果渲染。其最大的好處是,任何用戶所看到的文字效果都一樣,不用擔(dān)心用戶電腦沒有安裝特定字體而出現(xiàn)效果不一致的現(xiàn)象。Google公司較早推出了英文WebFont服務(wù)系統(tǒng),其他較成熟的英文WebFont提供者有Monotype Imaging公司、Adobe的Typekit、Font Squirrel等。在中文WebFont研究方面,威鋒數(shù)字開發(fā)的WebFont Server系統(tǒng),包含華康繁體中文字體30套,每套14 650個字;JustFont是臺灣地區(qū)推出的一套WebFont,提供網(wǎng)頁上使用中文字體的服務(wù)。
綜上所述,目前的中文WebFont研究較少,而且存在一些問題:如需要人為設(shè)計專門的字庫;使用時要求將字體下載到本機等。研究基于字形描述庫的漢字自動生成技術(shù)可以有效地解決這些問題。
2漢字字形動態(tài)描述庫
漢字字形描述庫記錄了漢字的特征點坐標(biāo)值,漢字的每一筆畫對應(yīng)著兩個或多個坐標(biāo)點信息。坐標(biāo)點采樣時按照漢字的書寫筆順采集,并標(biāo)記了筆畫,即字形動態(tài)描述庫記錄了漢字的筆畫類型、筆畫個數(shù)以及漢字的骨架信息[1]。
動態(tài)描述庫的建立采用人機交互的漢字描述算法,按照漢字內(nèi)碼擴展規(guī)范(GBK)的漢字排列順序。利用我們開發(fā)的“人機交互的字形描述系統(tǒng)”來臨摹每個漢字的字形(錯別字的字形描述信息建立,是通過人工書寫后掃描得到其字形的),記錄漢字的特征點和拓撲結(jié)構(gòu)信息并保存起來形成字形動態(tài)描述庫,并建立相應(yīng)的目錄對照表[1]。因此每個漢字都記錄了對應(yīng)的字形數(shù)據(jù),實現(xiàn)“漢字→數(shù)據(jù)”的轉(zhuǎn)換。
動態(tài)描述庫以純文本形式存儲,截取動態(tài)描述庫中的前3條記錄如圖1所示。
圖1 漢字字形動態(tài)描述庫片段
圖1中,每條記錄描述了一個漢字(或偏旁部首)的字形信息,以“,,,,,,”作為記錄間的分隔符。其中,每條記錄的第一個數(shù)值(如100,72等)表示構(gòu)成該字的特征點的坐標(biāo)值數(shù)量。漢字筆畫的起始點和終結(jié)點之間的分割點稱為界點,界點用坐標(biāo)(-64,0)表示,字形的終點用坐標(biāo)(-64,-64)表示[15]。目前的動態(tài)描述庫記錄了7918條字形信息,包括部分漢字偏旁部首。
圖2 漢字“阿”的字形生成骨架
基于字形動態(tài)描述庫的漢字生成方法是分析漢字坐標(biāo)點信息,以界點分割出漢字筆畫,由于筆畫的坐標(biāo)點已經(jīng)按筆順進行排列。因此,只需要將各個坐標(biāo)點按順序連接即可以得到漢字筆畫,將所有筆畫連接完成后即可生成漢字骨架。圖2顯示了基于字形動態(tài)描述庫的漢字生成詳圖。
圖2中,每一筆畫所記錄的坐標(biāo)點信息是通過提取界點(-64,0)之間的描述數(shù)值獲取的(“阿”字的坐標(biāo)點信息參見圖1中的第2條記錄)。為了顯示字體的方便,圖中已經(jīng)將實際坐標(biāo)值放大了20倍。
3Webfont生成方法
3.1生成流程
Webfont是在網(wǎng)絡(luò)生成的字體,其計算和處理工作均在服務(wù)器端完成,本地機器無需保存和下載字體,因此適用于瀏覽器應(yīng)用,尤其在移動終端應(yīng)用方面更具吸引力。為了適于在網(wǎng)絡(luò)上使用,并方便進行漢字的檢索,將純文本存儲的漢字字形動態(tài)描述庫存儲為XML格式,相應(yīng)的XML文件稱為DCDML。DCDML結(jié)構(gòu)如下:
…
DCDML中,
基于漢字動態(tài)描述庫的Webfont生成流程如下:
Step1用戶通過瀏覽器提交用字請求字符串S=c0,c1,…,cn,其中ci(i∈[0,n])表示一個漢字。如“S=安陽師范學(xué)院”中,c0=“安”,c1=“陽”,…,c5=“院”;
Step2通過查找DCDML動態(tài)描述庫文件,獲取S中每個漢字ci對應(yīng)的字形描述信息di(i∈[0,n]),得到字形描述集合D={d0,d1,…,dn};
Step3依次對di∈D進行筆畫提取,即利用界點標(biāo)記(-64,0)進行筆畫分割,得到構(gòu)成筆畫的點集合P={p0,p1,…,pn};
Step4順次連接p0,p1,…,pn的點坐標(biāo)形成筆畫,若筆畫由兩點構(gòu)成,則為直線連接;若筆畫由三個及以上的特征點構(gòu)成,則構(gòu)成一條折線段;
Step5整體顯示集合P中的所有點筆畫的連接信息,生成di∈D的對應(yīng)Webfont漢字fi;
Step6對fi進行局部優(yōu)化;
Step7重復(fù)Step3-Step6;
Step8得到用字請求字符串S=c0,c1,…,cn所對應(yīng)的Webfont字符串Swebfont=f0,f1,…,fn,將Swebfont返回給用戶。
3.2字形優(yōu)化
由于Webfont的生成基礎(chǔ)是動態(tài)描述庫中記錄的筆畫特征點信息,因此簡單地將點和點之間通過連線進行字形繪制會使得線條僵硬、棱角突出,缺乏觀賞性。當(dāng)筆畫特征點個數(shù)為2時,可以直接連成直線;當(dāng)構(gòu)成漢字筆畫的特征點超過3個時,往往還原的是復(fù)雜線條,如“阝”、“亅”、“冂”等帶折筆或勾筆的筆畫,而且有時連接的線條是斜筆甚至是直線,還會出現(xiàn)斷線或鋸齒現(xiàn)象,如“彡”、“厶”等筆畫。為提高和改善字形顯示效果,在漢字的基本骨架繪制完成后,需要對字形進行局部優(yōu)化。
3.2.1抗鋸齒優(yōu)化
在圖形繪制或圖像處理過程中,受分辨的制約,圖形邊緣總會或多或少的呈現(xiàn)三角形的鋸齒,而抗鋸齒就是指對圖形或圖像邊緣進行柔化處理,使其邊緣看起來更平滑,更接近真實情況的一種處理技術(shù)。
圖形鋸齒的形成與采樣點不足有很大關(guān)系,通常可以采用在圖形渲染時根據(jù)顯示器分辨率,將圖形進行若干倍放大的方法來處理。Java Graphics2D工具類中提供了setRenderingHint()方法,可以對圖形和字體等進行抗鋸齒處理。抗鋸齒優(yōu)化前后的對比效果如圖3所示。
圖3 抗鋸齒優(yōu)化前后對比
通過對比可以看出,圖3(a)中標(biāo)出的鋸齒或斷線問題經(jīng)優(yōu)化后已經(jīng)得到解決。
3.2.2利用B樣條曲線生成弧形筆畫
由于B樣條函數(shù)所構(gòu)造的曲線或曲面具有光滑、連續(xù)、易修改等特點,故經(jīng)常在幾何圖形中被用來構(gòu)造參數(shù)曲線或者曲面,在漢字字形生成和處理方面也有著較多應(yīng)用[16]。文獻[17]通過構(gòu)造5條二次B樣條曲線,可以生成點筆畫的輪廓。
B樣條曲線的數(shù)學(xué)表達式為:
(1)
式中,0≤t≤1;i=0,1,…,m。
由于B樣條曲線是分段定義的,一旦給定m+n+1個頂點Pi( i=0,1,…,m+n),則可定義m+1段n次的參數(shù)曲線。在表達式中,F(xiàn)k,n(t)為n次B樣條基函數(shù),也稱B樣條分段混合函數(shù)。其表達式為:
(2)
式中,0≤t≤1;k=0,1,…,n。
連接全部曲線段所組成的整條曲線稱為n次B樣條曲線。依次用線段連接點Pi+k(k=0,1,…,n)所組成的多邊折線稱為B樣條曲線在第i段的B特征多邊形。
B樣條曲線公式中,當(dāng)n=2,稱為二次B樣條曲線,此時B樣條公式可以表達為:
(3)
圖4 基于B樣條曲線的字形優(yōu)化
式中,Bk為分段曲線的B特征多邊形的頂點:B0,B1,B2,對于第i段曲線的Bk即為:Pi,Pi+1,Pi+2連續(xù)的三個頂點。
在Webfont生成策略中,如果筆畫由3個以上的特征點組成,則以這些特征點為控制點,繪制一條或多條B樣條曲線。圖4顯示了基于B樣條的字形生成效果,其中細實線部分為曲線優(yōu)化前的字形骨架。
3.2.3利用貝塞爾曲線生成弧形筆畫
貝塞爾曲線是法國數(shù)學(xué)家Pierre Bézier于1962年研究的一種矢量繪制曲線的方法。該方法通過四個任意位置的點坐標(biāo)可以繪制一條光滑曲線。貝塞爾曲線在漢字字形生成研究方面有著較多的應(yīng)用。其通式如下:
(4)
當(dāng)筆畫的特征點數(shù)量為3時,可以利用二次貝塞爾曲線進行繪制,即:
B(t)=(1-t)2P0+2t(1-t)P1+t2P2t∈[0,1]
(5)
當(dāng)筆畫的特征點數(shù)量為4時,可以利用三次貝塞爾曲線進行字體繪制。公式如下:
B(t)=(1-t)3P0+3t(1-t)2P1+3t2(1-t)P2+t3P3t∈[0,1]
(6)
當(dāng)筆畫的特征點數(shù)量超過4時,可以利用高次貝塞爾曲線進行字體繪制,也可以將特征點分組,分別利用對應(yīng)階次的貝塞爾曲線進行字體繪制,本文采用后者作為處理方法。圖5顯示了基于貝塞爾曲線的漢字字形生成效果。
圖5 利用貝塞爾曲線生成漢字字形
3.2.4用戶自定義優(yōu)化
隨著網(wǎng)絡(luò)的迅速普及,個性化字體的需求越來越大。Webfont是應(yīng)用于網(wǎng)絡(luò)環(huán)境的字體,因此不同的用戶對字體的需求并不一致,這就要求Webfont提供與用戶交互的功能。將構(gòu)成漢字字形的特征點設(shè)置為動態(tài)可編輯的控制點,用戶可以根據(jù)自己的需要,通過移動控制點生成不同的字體效果。自定義優(yōu)化前后的效果比較如圖6所示。
圖6 移動控制點實現(xiàn)用戶自定義字形
4實驗及分析
采用Tomcat6作為應(yīng)用服務(wù)器,將DCDML動態(tài)描述庫文件放置在服務(wù)器端。開啟服務(wù)后,用戶通過客戶端瀏覽器提交用字請求,將得到對應(yīng)的Webfont字體。未進行優(yōu)化的原始生成圖如圖7所示。
圖7 Webfont漢字自動生成頁面
字體優(yōu)化可以在瀏覽器端實現(xiàn)。通過點擊圖7中“字形優(yōu)化”下拉菜單,用戶可以自行選擇所需的優(yōu)化方式。圖8顯示了選擇“貝塞爾”曲線進行優(yōu)化后得到的Webfont字形。如果用戶需要實現(xiàn)自定義優(yōu)化字形,則點擊“字形編輯”按鈕,可以實現(xiàn)瀏覽器端的字形自定義編輯。
圖8 優(yōu)化后的Webfont漢字字形頁面
圖8相比較圖7而言,已將折線部分的鋸齒現(xiàn)象消除,并且將所有含3個以上特征點的筆畫利用曲線形式繪制,顯示效果大大提高。但是,從圖8也可以看出,在分段曲線的銜接部分存在不光滑的情況。
實驗結(jié)果為該方法得到的字體優(yōu)化正確率為93.27%。分析識別原因主要有:1) 部分實驗人員未按要求提交常用漢字,導(dǎo)致動態(tài)描述庫中沒有對應(yīng)的漢字;2) 用戶選擇的字體粗細度過大,使得筆畫之間產(chǎn)生重疊而無法正確識別,該情況占錯誤識別的66%;3) 某一筆畫對應(yīng)的特征點較多,利用多段曲線進行優(yōu)化時,曲線連接處不平滑產(chǎn)生多余筆畫;4) 存在人為誤差,即第2組人員識別漢字時出錯,實驗過程中也發(fā)現(xiàn)多處同一個Webfont字體被識別為不同的漢字的情況;5) 個別漢字的字形描述信息本身有誤。
實驗結(jié)果表明,基于漢字字形動態(tài)描述庫滿足用戶常用字的Webfont需求。用戶無需將字庫下載到本地機器,即可以在瀏覽器端生成和優(yōu)化用戶需要的漢字。由于字形計算過程均在服務(wù)器端進行,因此對客戶端的要求較低,非常適合在移動終端使用。
5結(jié)語
本文研究了基于漢字字形動態(tài)描述庫的Webfont生成方法,通過提取動態(tài)描述庫中的坐標(biāo)點獲取漢字的特征描述,采用點間的直線或曲線連接生成Webfont字體,并且提供用戶自定義功能。由于動態(tài)描述庫記錄的是字體(包括標(biāo)準字、生僻字、偏旁、部首甚至是錯別字)的筆畫、筆順等信息,因此對無法輸入的字形如錯字,也可以利用該方法生成。在下一步的研究中,將對動態(tài)描述庫中所有漢字的字形信息進行審核,修正錯誤信息。另外,將針對本方法的不足,如多條二次曲線的交點柔化、剪枝問題進行深入研究,并考慮在移動終端上的應(yīng)用研究。
參考文獻
[1] 吳琴霞,栗青生.基于動態(tài)描述庫的漢字字形自動生成技術(shù)研究[J].科學(xué)技術(shù)與工程,2013,13(15):4426-4432.
[2] 潘志庚,馬小虎.動態(tài)漢字庫自動生成算法[J].自動化學(xué)報,1996,22(5):561-567.
[3] 嚴偉榮,蔡士杰.基于筆劃特征的宋體字形衍生方法[J].中文信息學(xué)報,1995,9(1):16-24.
[4] 劉文予,萬菲,朱光喜.基于形態(tài)學(xué)的新的漢字字形自動生成方法[J].計算機學(xué)報,1999,22(3):235-240.
[5] 馬小虎,潘志庚.曲線輪廓漢字自動生成及其變形方法[J].中文信息學(xué)報,1999,13(2):46-50.
[6] 栗青生,吳琴霞,楊玉星.甲骨文字形動態(tài)描述庫及其字形生成技術(shù)研究[J].北京大學(xué)學(xué)報:自然科學(xué)版,2013,49(1):61-67.
[7] 唐英敏,賈文華.基于IDS的漢字字形生成方法[C]//2011CCF漢字字形計算研討會,安陽,2011.
[8] Yiu C L,Wong W.Chinese character synthesis using METAPOST[J].TUGboat,2003,24(1):85-93.
[9] 張問銀,孫星明,曾振柄,等.漢字數(shù)學(xué)表達式的自動生成[J].計算機研究與發(fā)展,2004,41(5):848-852.
[10] 孫星明,殷建平,陳火旺,等.漢字的數(shù)學(xué)表達式研究[J].計算機研究與發(fā)展,2002,39(6):707-711.
[11] 林民,宋柔.一種筆段網(wǎng)格漢字字形描述方法[J].計算機研究與發(fā)展,2010,47(2):318-327.
[12] 林民,宋柔.漢字的筆段網(wǎng)格字形描述及字形比對算法[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2009,21(9):1298-1306.
[13] Bishop T,Cook R S.A Specification for CDL Character Description Language[C]//Glyph and Typesetting Workshop,2003.
[14] Kawabata T,Kamichi K.GlyphWiki and OpenType:A Collaborative Glyph Development Environment and its Font Exporting System[C].Hongkong,2012.
[15] 栗青生,吳琴霞,王蕾.基于甲骨文字形動態(tài)描述庫的甲骨文輸入方法[J].中文信息學(xué)報,2012,26(4):28-33.
[16] 楊豐,肖平.基于三次B—樣條小波變換的漢字字形無級放大算法[J].計算機學(xué)報,1998,21(12):1141-1145.
[17] 栗青生,熊晶,吳琴霞,等.基于特征加權(quán)的漢字點筆畫生成研究[J].北京大學(xué)學(xué)報:自然科學(xué)版,2014,50(1):153-160.
GENERATION METHOD OF CHINESE WEBFONT BASED ON DYNAMIC FONT DESCRIPTION LIBRARY
Xiong JingLi QingshengGao FengWu Qinxia
(SchoolofComputerandInformationEngineering,AnyangNormalUniversity,Anyang455000,Henan,China)
AbstractExisting Chinese Webfont generation method needs to design a special characters library. It is a heavy workload and the flexibility is poor as well. In order to solve the problem, we recorded the Chinese character feature points with dynamic font description library, and proposed a new automatic Chinese Webfont generation method based on it. We studied the feature points description-based Chinese character strokes extraction, connection and optimisation methods, and compared the optimisation effect of the fonts based on B-spline curve and Bezier curve respectively. In order to facilitate users generating personalised fonts, we designed the user-defined fonts optimisation method. Experimental results showed that for the dynamic font description library based on Chinese characters, users can generate on webpages the Chinese Webfont characters meeting the need of their own without downloading character library.
KeywordsChinese characterFonts computationWebfontFont optimisation
收稿日期:2014-09-21。國家自然科學(xué)基金項目(60973051);CCF中文信息技術(shù)開放基金項目(2013-01-02)。熊晶,副教授,主研領(lǐng)域:中文信息處理。栗青生,教授。高峰,講師。吳琴霞,講師。
中圖分類號TP391.1
文獻標(biāo)識碼A
DOI:10.3969/j.issn.1000-386x.2016.05.016