2015-05-15 69 views
1

我使用谷歌字體,並且正在檢查我的WOFF2文件實際上會有多大。通過限制字形優化谷歌CDN的WOFF2,仍然認爲字體文件太大

所以測試,我通過他們的API http://fonts.googleapis.com/css?family=PT+Sans+Narrow&text=hello加載的字體,然後看了看輸出

@font-face { 
    font-family: 'PT Sans Narrow'; 
    font-style: normal; 
    font-weight: 400; 
    src: local('PT Sans Narrow'), local('PTSans-Narrow'), url(http://fonts.gstatic.com/l/font?kit=UyYrYy3ltEffJV9QueSi4VubgSqbO8GPta82DSsWGmo) format('woff2'); 
} 

然後我身體下載的文件http://fonts.gstatic.com/s/ptsansnarrow/v7/UyYrYy3ltEffJV9QueSi4UU-p1xzoRgkupcXIqgYFBc.woff2

我很震驚地看到,它顯然是超過2kb

這怎麼可能?這只是「你好」的字形。

比較,我裝了整個字體(所有字形,使用相同的技術,這給了我一個37KB文件。

我只是天真的定製認爲字體應該是低文件的大小嗎?或者在那裏你是什麼意思「它只是對你好的字形」的方式來得到這個壓縮更多的按照這個速度,我幾乎想,加載SVG比較好...

+0

這是相當小的,但是當我轉換該字體並刪除了所有額外的垃圾時,「Hello」的字形花費了812個字節。 –

+1

當然這個「垃圾」的很大一部分是必需的OpenType數據沒有它的字體將被視爲一個真正的字體文件之前驗證失敗。 –

+0

@ Mike'Pomax'Kamermans不確定你會認爲「一個真正的字體文件」。我認爲它是以我想要的字體顯示文本的。它做得很好。我只是刪除了未使用的字形和不需要的「你好」字樣。 –

回答

3

因爲it's not:??

enter image description here

除非你想潛入how OpenType really works, and how to bytesnipe it to a tiny tiny thing,否則2kb對於編碼五個矢量圖像的東西具有很大意義,加上opentype引擎接受所有平臺上字體內部組織所需的所有元數據。

+0

@Robert McKee Bytesniping,哈哈。我喜歡這個表情......我對你上面的評論感到困惑,你認爲'kerning stuff'不需要顯示'hello'。恕我直言,它非常是自定義字體的目的來定義字距,以便爲字體設計者呈現字體,以實現可讀性和美學目的。簡單地在另一個旁邊顯示5個字形不會產生字體。 – tim

+0

與SVG相比,我仍然在努力去理解爲什麼自定義字體中的5個字母的單詞必須是2kb的數據,規格或不是。 – tim

+0

@tim我從來沒有談過任何關於不需要的東西?如果你對羅伯特發表評論,最好是在他做出答覆的時候這樣做。至於爲什麼你需要2kb,看看「這不是」鏈接(「數字告訴我們什麼」部分),它顯示了字體使用的所有開銷*只是* 7個字母(約1300字節,其中小於300的是字形),這就是使用opentype的CFF風格(通常小於truetype版本),幾乎沒有字體和字形名稱等文本。對於那些指定的「正常」,它很容易增長到2500或更多的字節。 –