字體分類
目前主流的矢量字體格式有3種:Type1,TrueType和OpenType,這三種格式都是與平臺(tái)無(wú)關(guān)的。
Type1全稱PostScript Type1,是1985年由Adobe公司提出的一套矢量字體標(biāo)準(zhǔn),由于這個(gè)標(biāo)準(zhǔn)是基于PostScript Description Language(PDL),而PDL又是高端打印機(jī)首選的打印描述語(yǔ)言,所以Type1迅速流行起來(lái)。但是Type1是非開(kāi)放字體,Adobe對(duì)使用Type1的公司征收高額的使用費(fèi)。
TrueType是1991年由Apple公司與Microsoft公司聯(lián)合提出另一套矢量字標(biāo)準(zhǔn)。
Type1使用三次貝塞爾曲線來(lái)描述字形,TrueType則使用二次貝塞爾曲線來(lái)描述字形。所以Type1的字體比TrueType字體更加精確美觀。一個(gè)誤解是,Type1字體比TrueType字體占用空間多。這是因?yàn)橥瑯用枋鲆粋€(gè)圓形,二次貝塞爾曲線只需要8個(gè)關(guān)鍵點(diǎn)和7段二次曲線;而三次貝塞爾曲線則需要12個(gè)關(guān)鍵點(diǎn)和11段三次曲線。然而實(shí)際情況是一般來(lái)說(shuō) Type1比TrueType要小10%左右。這是因?yàn)閷?duì)于稍微復(fù)雜的字形,為了保持平滑,TrueType必須使用更多的關(guān)鍵點(diǎn)。由于現(xiàn)代大部分打印機(jī)都是使用PDL作為打印描述語(yǔ)言,所以Type1字體打印的時(shí)候不會(huì)產(chǎn)生形變,速度快;而TrueType則需要翻譯成PDL,由于曲線方程的變化,還會(huì)產(chǎn)生一定的形變,不如Type1美觀。
優(yōu)勢(shì)比較矢量字體有許多種類,其中的一種———由TrueType 字庫(kù)產(chǎn)生的字體,這里簡(jiǎn)稱成TrueType 字體,也是Windows 常用的字體,它是一種基于輪廓技術(shù)的字體,字體信息是用直線段,二次貝塞爾曲線來(lái)描述的,這使得他們比其它矢量的字體更容易處理,保證了屏幕與打印輸出的一致性;同時(shí),可以隨意縮放、旋轉(zhuǎn)而不必?fù)?dān)心會(huì)出現(xiàn)鋸齒,這也是矢量字體相對(duì)于點(diǎn)陣字體無(wú)可比擬的優(yōu)越性。1
這么說(shuō)來(lái),Type1應(yīng)該比TrueType更具有優(yōu)勢(shì),為什么如今的計(jì)算機(jī)上TrueType反而比Type1使用更廣泛呢?
這是因?yàn)榈谝唬篢ype1由于字體方程的復(fù)雜,所以在屏幕上渲染的時(shí)候,花費(fèi)的時(shí)間多,解決方案是大部分Type1字體嵌入了點(diǎn)陣字體,這樣渲染快,但是邊緣不光滑,比較難看。很多ps文檔和ps轉(zhuǎn)換的pdf文檔都是這樣,在計(jì)算機(jī)上瀏覽的時(shí)候字體很難看,但是打印出來(lái)很美觀。TrueType則渲染比較快,可以平滑的顯示在屏幕上,看上去很美觀。
第二個(gè)原因是Type1的高額使用費(fèi),使得Type1沒(méi)有被所有的操作系統(tǒng)所支持。Windows家族只有OS/2和windows 2000及之后的版本從操作系統(tǒng)級(jí)別開(kāi)始支持Type1。由于這個(gè)問(wèn)題,Adobe只好在其所有的產(chǎn)品中嵌入Adobe Type Manager(ATM)作為渲染引擎。
OpenType則是Type1與TrueType之爭(zhēng)的最終產(chǎn)物。1995年,Adobe公司和Microsoft公司開(kāi)始聯(lián)手開(kāi)發(fā)一種兼容Type1和TrueType,并且真正支持Unicode的字體,后來(lái)在發(fā)布的時(shí)候,正式命名為OpenType。OpenType可以嵌入Type1和TrueType,這樣就兼有了二者的特點(diǎn),無(wú)論是在屏幕上察看還是打印,質(zhì)量都非常優(yōu)秀??梢哉f(shuō)OpenType是一個(gè)三贏的結(jié)局,無(wú)論是Adobe、Microsoft還是最終用戶,都從OpenType中得到了好處。Windows家族從Windows 2000開(kāi)始,正式支持OpenType。打開(kāi)系統(tǒng)的字體目錄(一般是C:\Windows\Fonts\或C:\Winnt\Fonts),可以看到:一個(gè)紅色A的圖標(biāo)的是點(diǎn)陣字體,兩個(gè)重疊的T的圖標(biāo)是TrueType字體,一個(gè)O的圖標(biāo)就是OpenType字體。
灰度圖利用從節(jié)目單中獲得字體、大小等信息,就可以利用FreeType 庫(kù)生成矢量字體的灰度圖. FreeType
庫(kù)提供了許多API 函數(shù),這里繪出用FreeType 的API 繪制字符的流程圖。
擴(kuò)展名矢量字體擴(kuò)展名ttf。點(diǎn)陣字體的擴(kuò)展名是fon.