最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

計(jì)算機(jī)眼中的字體·Metrics(度量)

2023-08-23 21:52 作者:I左零右火上接地I  | 我要投稿

點(diǎn)陣字體與矢量字體點(diǎn)陣字體也叫位圖字體,其中每個(gè)字形都以一組二維像素 信息表示。由于位圖的原故,點(diǎn)陣字體很難進(jìn)行縮放,特定的點(diǎn)陣字體只能清晰地顯示在相應(yīng)的字號(hào)下。但對(duì)于 12-16px 這樣小的漢字,點(diǎn)陣字體常常比其它類型的字體在屏幕上更好的顯示效果。常見(jiàn)的點(diǎn)陣字體有 bdf,pcf,fnt,hbf 等格式。


對(duì)于常見(jiàn)的計(jì)算機(jī)操作系統(tǒng),字體的顯示算法需要一些字體的信息來(lái)優(yōu)化屏幕顯示效果,英文稱為Hinting。漢字由于筆畫(huà)復(fù)雜,所以 hinting 的方式與西文截然不同。使用在漢字字體中嵌入預(yù)先制作的點(diǎn)陣位圖既可以有效地避免hinting 算法帶來(lái)的計(jì)算開(kāi)銷,同時(shí)屏幕上顯示的漢字邊緣清晰,易于閱讀。


矢量字體中每一個(gè)字形是通過(guò)數(shù)學(xué)曲線來(lái)描述的,它包含了字形邊界上的關(guān)鍵點(diǎn),連線的導(dǎo)數(shù)信息等,字體的渲染引擎通過(guò)讀取這些數(shù)學(xué)矢量,然后進(jìn)行一定的數(shù)學(xué)運(yùn)算來(lái)進(jìn)行渲染。這類字體的好處是字體可以無(wú)限放大而不產(chǎn)生變形。矢量字體主要包括 Type1 和 TrueType 等幾類。


內(nèi)嵌點(diǎn)陣字的字體由于CJK字體的結(jié)構(gòu)復(fù)雜,在小號(hào)字體只有使用點(diǎn)陣才能有清晰的顯示效果,但是點(diǎn)陣字體很難進(jìn)行縮,而且線條單一,在大號(hào)字體顯示時(shí)就顯得蒼白無(wú)力。把點(diǎn)陣字體內(nèi)嵌到矢量字體就能發(fā)揮兩者的優(yōu)點(diǎn),并且也彌補(bǔ)了兩者的不足。小號(hào)字體時(shí)清晰明朗,大號(hào)字體時(shí)字型飽滿,形態(tài)豐富。常見(jiàn)的內(nèi)嵌點(diǎn)陣字的字體有:北京中易電子公司宋體SimSun 、方正宋體(FZSongti)、文鼎PL上海宋(Uming)、Firefly的文鼎PL新宋(AR PL New Sung)等。


Hinting 與 AutohintHinting 用來(lái)最佳化字型顯示的方法。由于屏幕的像素有限,向量字型的縮放需要有更多的考慮, 例如當(dāng)一條線位在兩個(gè)像素格子中間時(shí), 該取左邊的格子還是右邊的格子? 如果這方面的控制沒(méi)有做好,就常常會(huì)出現(xiàn)字型的襯線沒(méi)有對(duì)齊,或是小字歪七扭八的情況。Hinting 是額外的信息, 它告訴 renderer 該如何處理這些細(xì)節(jié)的部份,使得向量字在小字的時(shí)候能夠好看。也因此 Hinting 是非常費(fèi)時(shí)費(fèi)人力的工作,TrueType字型很多,但是有良好 Hinting 的字型不多。拙劣的 Hinting 就會(huì)讓字變得很難看。 為了稍微改善這個(gè)問(wèn)題,freetype 有 autohint 的功能,可以自動(dòng)為沒(méi)有hint 的字型做 hinting 的工作。另外由于 TrueType 的 hinting 是有專利的,不能完全自由地使用autohint 就不受這個(gè)限制。autohint 自然無(wú)法做得像人力的 hint 一樣好,不過(guò)至少比沒(méi)有 hint 要好些。話雖如此,對(duì)于許多筆劃復(fù)雜的文字 (如中文) 目前 freetype 的 autohint 還做得不甚完美,而因?yàn)榻⑼暾?hinting 的難度,即使是英文字,原本就很高,內(nèi)建有 hinting 的中文字型就少之又少了。所以常常有人抱怨中文字在屏幕上很難看,就是沒(méi)有理想hinting, 或者是使用了 autohinter 所造成的一些反效果。


AA(Anti-aliasing) Antialiasing 是將字體在后臺(tái)先以數(shù)倍的大小來(lái)繪畫(huà),然后再縮成想要的大小,未滿一格的格子用灰階補(bǔ)點(diǎn)。由于原本 X 所支持的 logic運(yùn)算不敷使用,所以才用 XRender?extension 來(lái)達(dá)成目的。 Antialiasing 會(huì) 人一種朦朧的感覺(jué),習(xí)慣了Windows XP 下清晰,銳利的字體顯示時(shí),Antialiasing 會(huì)讓人不太適應(yīng),會(huì)讓用戶覺(jué)得Linux下的字體顯示不如Windows XP。但是,其實(shí) Antialiasing是一種很先進(jìn)的顯示技術(shù),當(dāng)長(zhǎng)時(shí)間顯示器上閱讀的時(shí)候,Windows XP 下的銳利的字體顯示風(fēng)格,會(huì)讓眼睛更加容易疲勞,使用Antialiasing,字體的顯示更加柔和,更加適合長(zhǎng)時(shí)間的在顯示器上閱讀文檔,減少眼睛的疲勞。 微軟的下一代OS Windows Vista 也將用ClearType 來(lái)取代傳統(tǒng)的黑白,銳利的英文字體顯示和點(diǎn)陣CJK 顯示。ClearType的渲染效果和Linux下的 Anti-aliasing 效果很相似。


中文CleraType字體

中文世界里缺少一套合適的 ClearType 屏幕正文顯示字體。


這款字體必須能解決在 ClearType 平滑顯示狀態(tài)下小字號(hào)正常閱讀的問(wèn)題。現(xiàn)有的所有中文字庫(kù)都無(wú)法在 ClearType 平滑顯示狀態(tài)下完美的文本顯示。我們知道, Windows 中的宋體、黑體等字體是由中國(guó)北京的中易公司開(kāi)發(fā)的,然后微軟向中易公司購(gòu)買了版權(quán)之后嵌入 Window 中文版本。之前的宋體之所以能夠在小字號(hào)點(diǎn)陣狀態(tài)下很好的顯示,是由于宋體在矢量字庫(kù)中嵌入了 12 、 14 、 16 、 18 等幾個(gè)點(diǎn)陣字庫(kù),才得以比較優(yōu)秀的顯示。但在 ClearType 狀態(tài)下,繼續(xù)采用這樣內(nèi)嵌點(diǎn)陣的方式來(lái)顯示漢字,就會(huì)和平滑顯示的英文粗細(xì)不一致,同時(shí)風(fēng)格上非常的不協(xié)調(diào)。由于當(dāng)初的宋體不是為平滑顯示而設(shè)計(jì)的,強(qiáng)制平滑顯示的效果就顯得纖細(xì)發(fā)虛,看起來(lái)很模糊。


那為什么英文矢量字體就可以直接使用 ClearType 來(lái)進(jìn)行平滑顯示呢?這是因?yàn)榇蠖鄶?shù)優(yōu)秀的英文字體并不是采用內(nèi)嵌點(diǎn)陣的方式來(lái)進(jìn)行優(yōu)化的,它們采用的是一種叫做 Hinting (字形微調(diào))的技術(shù)來(lái)對(duì)小字號(hào)的顯示進(jìn)行優(yōu)化。


我們知道,矢量字體是可以無(wú)限平滑縮放的,在使用的時(shí)候,要通過(guò)操作系統(tǒng)的字體引擎自動(dòng)的解析渲染為實(shí)際的像素,才能夠在屏幕上顯示出來(lái)。但是在字號(hào)很小的時(shí)候,由于能使用的像素非常有限,這種自動(dòng)解析會(huì)出現(xiàn)很多問(wèn)題,例如筆畫(huà)粗細(xì)不勻,文字之間高低不齊,甚至筆畫(huà)模糊無(wú)法識(shí)別等。因此必須由字體設(shè)計(jì)師人工干預(yù),在矢量字庫(kù)中嵌入一些附加的提示信息,來(lái)告訴字體渲染引擎在某個(gè)特定的字號(hào)下面,應(yīng)該如何對(duì)這個(gè)字符的細(xì)節(jié)進(jìn)行修正,才能準(zhǔn)確的顯示。這種在矢量字體中嵌入的提示信息,就叫做 Hinting 。


對(duì)于中文字體來(lái)說(shuō),這種提示就更為重要,因?yàn)橹形牡墓P畫(huà)繁多,自動(dòng)解析的錯(cuò)誤也就更多更嚴(yán)重。在字號(hào)更小的情況下,根本無(wú)法顯示全部的筆畫(huà),這時(shí)候還需要設(shè)計(jì)師在不影響整體的情況下,對(duì)筆畫(huà)進(jìn)行取舍,去掉一些不影響識(shí)別的筆畫(huà),否則這個(gè)文字就會(huì)因糊成一團(tuán)無(wú)法識(shí)別。 Hinting 調(diào)整的范圍需要涵蓋各級(jí)小字號(hào),一般最少要包括 9px - 18px 這個(gè)常用的字號(hào)區(qū)間。這種 Hinting ,即使是對(duì)于非常有經(jīng)驗(yàn)的設(shè)計(jì)師,也是非常高難度而且費(fèi)時(shí)費(fèi)力的工作。


我們知道英文只有 26 個(gè)字母,但是對(duì)于中文的漢字情況就復(fù)雜的多了,僅僅是最常用的漢字就有 6000 個(gè),然后為了在簡(jiǎn)繁體混排時(shí)候能完美的顯示,就必須同時(shí)包含繁體和簡(jiǎn)體兩套字符,再加上眾多的不常用但是會(huì)在古籍文獻(xiàn)中非常重要的生僻字,一套比較完整的大字符集字庫(kù)所包含的字符數(shù)目將接近 3 萬(wàn)個(gè)。僅僅是這矢量造字的工作就是非常浩大的。


這還不算,作為一套功能完整的正文字體,還需要考慮到斜體和粗體的顯示。所有的斜體狀態(tài),也同樣必須由設(shè)計(jì)師對(duì)不同的字號(hào)指定不同的 Hinting ,否則就會(huì)有顯示問(wèn)題。為了更完美的顯示粗體,微軟決定將標(biāo)準(zhǔn)體和粗體分開(kāi),作為兩套單獨(dú)的字體來(lái)設(shè)計(jì),安裝時(shí)也是兩套字體,但在系統(tǒng)中使用時(shí)是顯示為一套字體的不同狀態(tài)。這套單獨(dú)的黑體也同樣需要單獨(dú)造字,然后指定一系列的 Hinting 和斜體 Hinting 。因此要開(kāi)發(fā)一套優(yōu)秀的中文大型字庫(kù),耗費(fèi)的人力物力是驚人的。這也正是這套字體會(huì)如此昂貴的原因之一。


Hinting信息是評(píng)價(jià)一款優(yōu)秀矢量字體的一個(gè)重要指標(biāo),良好的Hinting能在小字號(hào)下面提供和內(nèi)嵌點(diǎn)陣字一樣優(yōu)秀的顯示質(zhì)量,同時(shí)又降低內(nèi)存的消耗。雖然我們現(xiàn)在已經(jīng)擁有不少不錯(cuò)的矢量中文字體,但適合屏幕顯示的正文字體很少,而包含完善 Hinting 信息的,一個(gè)也沒(méi)有。


所以,如果要在中文 Vista 平臺(tái)下徹底完美的實(shí)現(xiàn)文本的平滑顯示,微軟就必須全新開(kāi)發(fā)一套具備完善 Hinting 信息的 ClearType 中文字體。


實(shí)際上不僅僅是中國(guó)大陸,整個(gè) CJK 地區(qū)(中日韓)都要面臨這個(gè)全新設(shè)計(jì)字體的問(wèn)題。從現(xiàn)在已經(jīng)發(fā)布的版本來(lái)看,各國(guó)的 Vista 版本都有全新設(shè)計(jì)的專用字體,中國(guó)大陸地區(qū)的是我們已經(jīng)知道的的微軟雅黑,中國(guó)臺(tái)灣地區(qū)的是微軟正黑體,日文地區(qū)的是 Meiryo (據(jù)說(shuō)這個(gè)名稱來(lái)源于“明了”或者“明流”的讀音),韓國(guó)地區(qū)的則是 Malgun 。


對(duì)于微軟雅黑和微軟正黑,我們不好簡(jiǎn)單的用簡(jiǎn)體或者繁體來(lái)區(qū)分他們,因?yàn)檫@兩套字體都同時(shí)包含了比較完整的簡(jiǎn)繁體漢字,以確保在簡(jiǎn)體和繁體混排的頁(yè)面上都能夠完美的顯示。但由于兩岸的文教部門在各自的文字規(guī)范中對(duì)漢字的寫(xiě)法規(guī)定有很多細(xì)節(jié)上的不同,所以這兩套字形在正式場(chǎng)合是不能混淆使用的。同樣的,日文的Meiryo字體中也包含了大量的繁體漢字,不過(guò)由于漢字在日本也經(jīng)過(guò)了上千年的演變,日文中的漢字寫(xiě)法和中國(guó)大陸和臺(tái)灣也有著相當(dāng)?shù)膮^(qū)別。

來(lái)源:https://blog.csdn.net/net_lover/article/details/1917290

計(jì)算機(jī)眼中的字體·Metrics(度量)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
福清市| 南开区| 改则县| 铁岭市| 新竹县| 东城区| 科技| 六盘水市| 增城市| 邵武市| 宣威市| 孝感市| 公主岭市| 买车| 贵州省| 梅河口市| 常德市| 安义县| 玉屏| 普兰县| 藁城市| 通城县| 南汇区| 萨嘎县| 漯河市| 邯郸县| 广汉市| 准格尔旗| 比如县| 桂平市| 股票| 崇文区| 唐河县| 乌鲁木齐市| 方城县| 郯城县| 曲松县| 徐汇区| 淮滨县| 德江县| 花莲市|