熊 晶 栗青生 高 峰 吳琴霞
(安陽師范學院計算機與信息工程學院 河南 安陽 455000)
?
基于字形動態描述庫的Webfont漢字生成方法
熊晶栗青生高峰吳琴霞
(安陽師范學院計算機與信息工程學院河南 安陽 455000)
摘要現有的Webfont漢字生成方法,需要設計專門的字庫,工作量大且靈活性差。針對這一問題,將漢字特征點用字形動態描述庫記錄,在此基礎上提出一種新的Webfont漢字的自動生成方法。研究基于特征點描述的漢字筆畫提取、連接和優化方法,并對比基于B樣條曲線和貝塞爾曲線的字形優化效果。為方便用戶進行個性化字體生成,設計了用戶自定義字形優化方法。實驗結果證明,基于漢字字形動態描述庫,用戶無需下載字庫,即可以在網頁上生成符合自身需求的Webfont漢字。
關鍵詞漢字字形計算網絡字體字形優化
0引言
隨著互聯網、云計算及移動計算技術的不斷發展,人們對漢字的輸入和顯示有了新的需求,如個性化需求、多元審美需求、文化內涵需求、機器書寫需求、安全性需求等。傳統的漢字生成技術已經很難滿足這些需求,WebFont技術是解決這一問題的有力途徑。目前絕大多數的WebFont字體均是西文,而博大精深的中華文化,很大一部分是體現在漢字上的。但是在互聯網對社會生活影響越來越深刻的今天,漢字WebFont的研究和應用卻明顯滯后,其主要原因有:① 針對某種字體,需要設計專門的字庫;② 漢字字體太大,在現有網絡帶寬環境下,中文網絡字體的顯示效率較差;③ 大部分優秀的中文字體版權費用較高,不提供按需付費服務。基于漢字字形動態描述語言DCDL(Dynamic Character Description language)[1]來設計漢字WebFont可以有效彌補上述不足。DCDL非常適合在互聯網上使用,它使用漢字特征描述庫代替了漢字字庫。漢字特征描述庫存儲在服務器端,漢字的顯示通過客戶端或移動終端用戶的需求來實現。用戶無需安裝本地字庫,而是采用分布式字形描述存儲方式,可以充分發揮服務器端(或云端)的計算功能、控制功能和管理功能。
1漢字自動生成方法概述
針對傳統人工為主的漢字字形設計的不足,國內外學者都在進行漢字字形的自動生成研究。主要成就包括基于書法規則的漢字字形生成技術[2]、基于筆劃特征的字形衍化方法[3]、基于形態學的字形自動生成方法[4]、基于曲線輪廓的漢字自動生成[5]、基于動態描述庫的漢字生成方法[1, 6]、基于IDS的漢字字形生成算法[7]等。研究者在傳統的漢字字形輪廓描述技術之外,開發出了很多和漢字自動生成有關的漢字字形描述技術。例如:香港浸會大學提出的HanGlyph[8]、國防科技大學提出的漢字數學表達式[9,10]、北京語言大學和內蒙古師范大學提出的筆段網格字形描述[11,12]、美國加州大學伯克利分校提出的基于筆畫和漢字部件的字形描述語言CDL(Character Description language)[13]、日本京都大學的漢字自動生成技術[14]等。但是這些字形描述技術并沒有對漢字的生成過程進行深入研究,很難突出漢字獨特的個性特征和文化特征,更無法體現漢字的書寫和書法特征。安陽師范學院將漢字書寫過程作為重要描述特征,提出了一種新的動態字形描述語言DCDL。DCDL適合在互聯網上動態生成漢字,為漢字WebFont提供了技術基礎。文獻[1]研究了在動態字形描述庫基礎上的漢字自動生成技術。通過貝塞爾曲線對漢字骨架進行還原,但是其以每一個筆畫的貝塞爾曲線為研究內容,并且沒有考慮動態字形描述庫在Webfont上的應用。
WebFont即網絡字體,是指不使用本機字體而使用在線字體進行效果渲染。其最大的好處是,任何用戶所看到的文字效果都一樣,不用擔心用戶電腦沒有安裝特定字體而出現效果不一致的現象。Google公司較早推出了英文WebFont服務系統,其他較成熟的英文WebFont提供者有Monotype Imaging公司、Adobe的Typekit、Font Squirrel等。在中文WebFont研究方面,威鋒數字開發的WebFont Server系統,包含華康繁體中文字體30套,每套14 650個字;JustFont是臺灣地區推出的一套WebFont,提供網頁上使用中文字體的服務。
綜上所述,目前的中文WebFont研究較少,而且存在一些問題:如需要人為設計專門的字庫;使用時要求將字體下載到本機等。研究基于字形描述庫的漢字自動生成技術可以有效地解決這些問題。
2漢字字形動態描述庫
漢字字形描述庫記錄了漢字的特征點坐標值,漢字的每一筆畫對應著兩個或多個坐標點信息。坐標點采樣時按照漢字的書寫筆順采集,并標記了筆畫,即字形動態描述庫記錄了漢字的筆畫類型、筆畫個數以及漢字的骨架信息[1]。
動態描述庫的建立采用人機交互的漢字描述算法,按照漢字內碼擴展規范(GBK)的漢字排列順序。利用我們開發的“人機交互的字形描述系統”來臨摹每個漢字的字形(錯別字的字形描述信息建立,是通過人工書寫后掃描得到其字形的),記錄漢字的特征點和拓撲結構信息并保存起來形成字形動態描述庫,并建立相應的目錄對照表[1]。因此每個漢字都記錄了對應的字形數據,實現“漢字→數據”的轉換。
動態描述庫以純文本形式存儲,截取動態描述庫中的前3條記錄如圖1所示。

圖1 漢字字形動態描述庫片段
圖1中,每條記錄描述了一個漢字(或偏旁部首)的字形信息,以“,,,,,,”作為記錄間的分隔符。其中,每條記錄的第一個數值(如100,72等)表示構成該字的特征點的坐標值數量。漢字筆畫的起始點和終結點之間的分割點稱為界點,界點用坐標(-64,0)表示,字形的終點用坐標(-64,-64)表示[15]。目前的動態描述庫記錄了7918條字形信息,包括部分漢字偏旁部首。

圖2 漢字“阿”的字形生成骨架
基于字形動態描述庫的漢字生成方法是分析漢字坐標點信息,以界點分割出漢字筆畫,由于筆畫的坐標點已經按筆順進行排列。因此,只需要將各個坐標點按順序連接即可以得到漢字筆畫,將所有筆畫連接完成后即可生成漢字骨架。圖2顯示了基于字形動態描述庫的漢字生成詳圖。
圖2中,每一筆畫所記錄的坐標點信息是通過提取界點(-64,0)之間的描述數值獲取的(“阿”字的坐標點信息參見圖1中的第2條記錄)。為了顯示字體的方便,圖中已經將實際坐標值放大了20倍。
3Webfont生成方法
3.1生成流程
Webfont是在網絡生成的字體,其計算和處理工作均在服務器端完成,本地機器無需保存和下載字體,因此適用于瀏覽器應用,尤其在移動終端應用方面更具吸引力。為了適于在網絡上使用,并方便進行漢字的檢索,將純文本存儲的漢字字形動態描述庫存儲為XML格式,相應的XML文件稱為DCDML。DCDML結構如下:
…
DCDML中,
基于漢字動態描述庫的Webfont生成流程如下:
Step1用戶通過瀏覽器提交用字請求字符串S=c0,c1,…,cn,其中ci(i∈[0,n])表示一個漢字。如“S=安陽師范學院”中,c0=“安”,c1=“陽”,…,c5=“院”;
Step2通過查找DCDML動態描述庫文件,獲取S中每個漢字ci對應的字形描述信息di(i∈[0,n]),得到字形描述集合D={d0,d1,…,dn};
Step3依次對di∈D進行筆畫提取,即利用界點標記(-64,0)進行筆畫分割,得到構成筆畫的點集合P={p0,p1,…,pn};
Step4順次連接p0,p1,…,pn的點坐標形成筆畫,若筆畫由兩點構成,則為直線連接;若筆畫由三個及以上的特征點構成,則構成一條折線段;
Step5整體顯示集合P中的所有點筆畫的連接信息,生成di∈D的對應Webfont漢字fi;
Step6對fi進行局部優化;
Step7重復Step3-Step6;
Step8得到用字請求字符串S=c0,c1,…,cn所對應的Webfont字符串Swebfont=f0,f1,…,fn,將Swebfont返回給用戶。
3.2字形優化
由于Webfont的生成基礎是動態描述庫中記錄的筆畫特征點信息,因此簡單地將點和點之間通過連線進行字形繪制會使得線條僵硬、棱角突出,缺乏觀賞性。當筆畫特征點個數為2時,可以直接連成直線;當構成漢字筆畫的特征點超過3個時,往往還原的是復雜線條,如“阝”、“亅”、“冂”等帶折筆或勾筆的筆畫,而且有時連接的線條是斜筆甚至是直線,還會出現斷線或鋸齒現象,如“彡”、“厶”等筆畫。為提高和改善字形顯示效果,在漢字的基本骨架繪制完成后,需要對字形進行局部優化。
3.2.1抗鋸齒優化
在圖形繪制或圖像處理過程中,受分辨的制約,圖形邊緣總會或多或少的呈現三角形的鋸齒,而抗鋸齒就是指對圖形或圖像邊緣進行柔化處理,使其邊緣看起來更平滑,更接近真實情況的一種處理技術。
圖形鋸齒的形成與采樣點不足有很大關系,通常可以采用在圖形渲染時根據顯示器分辨率,將圖形進行若干倍放大的方法來處理。Java Graphics2D工具類中提供了setRenderingHint()方法,可以對圖形和字體等進行抗鋸齒處理。抗鋸齒優化前后的對比效果如圖3所示。

圖3 抗鋸齒優化前后對比
通過對比可以看出,圖3(a)中標出的鋸齒或斷線問題經優化后已經得到解決。
3.2.2利用B樣條曲線生成弧形筆畫
由于B樣條函數所構造的曲線或曲面具有光滑、連續、易修改等特點,故經常在幾何圖形中被用來構造參數曲線或者曲面,在漢字字形生成和處理方面也有著較多應用[16]。文獻[17]通過構造5條二次B樣條曲線,可以生成點筆畫的輪廓。
B樣條曲線的數學表達式為:
(1)
式中,0≤t≤1;i=0,1,…,m。
由于B樣條曲線是分段定義的,一旦給定m+n+1個頂點Pi( i=0,1,…,m+n),則可定義m+1段n次的參數曲線。在表達式中,Fk,n(t)為n次B樣條基函數,也稱B樣條分段混合函數。其表達式為:
(2)
式中,0≤t≤1;k=0,1,…,n。
連接全部曲線段所組成的整條曲線稱為n次B樣條曲線。依次用線段連接點Pi+k(k=0,1,…,n)所組成的多邊折線稱為B樣條曲線在第i段的B特征多邊形。
B樣條曲線公式中,當n=2,稱為二次B樣條曲線,此時B樣條公式可以表達為:
(3)

圖4 基于B樣條曲線的字形優化
式中,Bk為分段曲線的B特征多邊形的頂點:B0,B1,B2,對于第i段曲線的Bk即為:Pi,Pi+1,Pi+2連續的三個頂點。
在Webfont生成策略中,如果筆畫由3個以上的特征點組成,則以這些特征點為控制點,繪制一條或多條B樣條曲線。圖4顯示了基于B樣條的字形生成效果,其中細實線部分為曲線優化前的字形骨架。
3.2.3利用貝塞爾曲線生成弧形筆畫
貝塞爾曲線是法國數學家Pierre Bézier于1962年研究的一種矢量繪制曲線的方法。該方法通過四個任意位置的點坐標可以繪制一條光滑曲線。貝塞爾曲線在漢字字形生成研究方面有著較多的應用。其通式如下:
(4)
當筆畫的特征點數量為3時,可以利用二次貝塞爾曲線進行繪制,即:
B(t)=(1-t)2P0+2t(1-t)P1+t2P2t∈[0,1]
(5)
當筆畫的特征點數量為4時,可以利用三次貝塞爾曲線進行字體繪制。公式如下:
B(t)=(1-t)3P0+3t(1-t)2P1+3t2(1-t)P2+t3P3t∈[0,1]
(6)
當筆畫的特征點數量超過4時,可以利用高次貝塞爾曲線進行字體繪制,也可以將特征點分組,分別利用對應階次的貝塞爾曲線進行字體繪制,本文采用后者作為處理方法。圖5顯示了基于貝塞爾曲線的漢字字形生成效果。

圖5 利用貝塞爾曲線生成漢字字形
3.2.4用戶自定義優化
隨著網絡的迅速普及,個性化字體的需求越來越大。Webfont是應用于網絡環境的字體,因此不同的用戶對字體的需求并不一致,這就要求Webfont提供與用戶交互的功能。將構成漢字字形的特征點設置為動態可編輯的控制點,用戶可以根據自己的需要,通過移動控制點生成不同的字體效果。自定義優化前后的效果比較如圖6所示。

圖6 移動控制點實現用戶自定義字形
4實驗及分析
采用Tomcat6作為應用服務器,將DCDML動態描述庫文件放置在服務器端。開啟服務后,用戶通過客戶端瀏覽器提交用字請求,將得到對應的Webfont字體。未進行優化的原始生成圖如圖7所示。

圖7 Webfont漢字自動生成頁面
字體優化可以在瀏覽器端實現。通過點擊圖7中“字形優化”下拉菜單,用戶可以自行選擇所需的優化方式。圖8顯示了選擇“貝塞爾”曲線進行優化后得到的Webfont字形。如果用戶需要實現自定義優化字形,則點擊“字形編輯”按鈕,可以實現瀏覽器端的字形自定義編輯。

圖8 優化后的Webfont漢字字形頁面
圖8相比較圖7而言,已將折線部分的鋸齒現象消除,并且將所有含3個以上特征點的筆畫利用曲線形式繪制,顯示效果大大提高。但是,從圖8也可以看出,在分段曲線的銜接部分存在不光滑的情況。

實驗結果為該方法得到的字體優化正確率為93.27%。分析識別原因主要有:1) 部分實驗人員未按要求提交常用漢字,導致動態描述庫中沒有對應的漢字;2) 用戶選擇的字體粗細度過大,使得筆畫之間產生重疊而無法正確識別,該情況占錯誤識別的66%;3) 某一筆畫對應的特征點較多,利用多段曲線進行優化時,曲線連接處不平滑產生多余筆畫;4) 存在人為誤差,即第2組人員識別漢字時出錯,實驗過程中也發現多處同一個Webfont字體被識別為不同的漢字的情況;5) 個別漢字的字形描述信息本身有誤。
實驗結果表明,基于漢字字形動態描述庫滿足用戶常用字的Webfont需求。用戶無需將字庫下載到本地機器,即可以在瀏覽器端生成和優化用戶需要的漢字。由于字形計算過程均在服務器端進行,因此對客戶端的要求較低,非常適合在移動終端使用。
5結語
本文研究了基于漢字字形動態描述庫的Webfont生成方法,通過提取動態描述庫中的坐標點獲取漢字的特征描述,采用點間的直線或曲線連接生成Webfont字體,并且提供用戶自定義功能。由于動態描述庫記錄的是字體(包括標準字、生僻字、偏旁、部首甚至是錯別字)的筆畫、筆順等信息,因此對無法輸入的字形如錯字,也可以利用該方法生成。在下一步的研究中,將對動態描述庫中所有漢字的字形信息進行審核,修正錯誤信息。另外,將針對本方法的不足,如多條二次曲線的交點柔化、剪枝問題進行深入研究,并考慮在移動終端上的應用研究。
參考文獻
[1] 吳琴霞,栗青生.基于動態描述庫的漢字字形自動生成技術研究[J].科學技術與工程,2013,13(15):4426-4432.
[2] 潘志庚,馬小虎.動態漢字庫自動生成算法[J].自動化學報,1996,22(5):561-567.
[3] 嚴偉榮,蔡士杰.基于筆劃特征的宋體字形衍生方法[J].中文信息學報,1995,9(1):16-24.
[4] 劉文予,萬菲,朱光喜.基于形態學的新的漢字字形自動生成方法[J].計算機學報,1999,22(3):235-240.
[5] 馬小虎,潘志庚.曲線輪廓漢字自動生成及其變形方法[J].中文信息學報,1999,13(2):46-50.
[6] 栗青生,吳琴霞,楊玉星.甲骨文字形動態描述庫及其字形生成技術研究[J].北京大學學報:自然科學版,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] 張問銀,孫星明,曾振柄,等.漢字數學表達式的自動生成[J].計算機研究與發展,2004,41(5):848-852.
[10] 孫星明,殷建平,陳火旺,等.漢字的數學表達式研究[J].計算機研究與發展,2002,39(6):707-711.
[11] 林民,宋柔.一種筆段網格漢字字形描述方法[J].計算機研究與發展,2010,47(2):318-327.
[12] 林民,宋柔.漢字的筆段網格字形描述及字形比對算法[J].計算機輔助設計與圖形學學報,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] 栗青生,吳琴霞,王蕾.基于甲骨文字形動態描述庫的甲骨文輸入方法[J].中文信息學報,2012,26(4):28-33.
[16] 楊豐,肖平.基于三次B—樣條小波變換的漢字字形無級放大算法[J].計算機學報,1998,21(12):1141-1145.
[17] 栗青生,熊晶,吳琴霞,等.基于特征加權的漢字點筆畫生成研究[J].北京大學學報:自然科學版,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。國家自然科學基金項目(60973051);CCF中文信息技術開放基金項目(2013-01-02)。熊晶,副教授,主研領域:中文信息處理。栗青生,教授。高峰,講師。吳琴霞,講師。
中圖分類號TP391.1
文獻標識碼A
DOI:10.3969/j.issn.1000-386x.2016.05.016