Load Cufón font dynamically

前陣子我曾實驗利用 Cufón 在網頁上嵌入中文字型,當時的實驗結果是中文字型轉換為 JavaScript 格式,再經過 gzip 壓縮後,其大小雖然已經比原來的 TrueType 檔案小——以微軟正黑體為例,原始字型檔為 14 MB,經轉換後為 5.3 MB——但對於網路傳輸而言仍然過大,因此無法實際使用。

最近發現 Google App Engine 的大量傳輸 API 已經開放了,於是試著寫個東西來玩。我把 Cufón 字型的每個 Glyph 個別儲存到 Datastore,然後根據頁面的實際需要,重組成僅含所需字集的新檔案,藉此縮小所需傳輸的檔案大小。

 字型檔案大小
使用 gzip 壓縮不使用 gzip 壓縮
範例1:載入完整字型 10.5 MB 34.1 MB
範例2:只載入所需的字集 22.3 KB 61.4 KB

目前的作法是把需要的字集直接用 GET 告訴伺服器,但這樣未來可能會遇上 GET 長度限制問題…… 我想到的解法是可改用 JavaScript 載入這個檔案,用 POST 傳遞字集資訊,同時或許也能用 JavaScript 自動整理出所需的字集(目前是用手動整理 :p)。

繁體版微軟雅黑字型 (2)

因為有人想要,所以更新了一下。

此更新檔的功能為將微軟雅黑字型 6.02 版(MD5: EB525DCBA67C642CFA418424F8C7DFC7)更新為繁體版。原始字型檔取自 Windows 7 RC 版,本 blog 不提供原始字型檔,請自行取得。

※ 註:微軟雅黑字型本來就包含繁體字,此更新檔是將微軟雅黑中的簡體字也取代為繁體,如此便能用繁體顯示原本為簡體的文字。如果您沒有這樣的需求,便無須使用本更新檔。

這裡是我的中文簡繁參考對應表,如果對此對應表有意見者,也歡迎幫忙修改。


這次製作我改用 FontForge,FontForge 有強大的 Scripting 能力1,所以製作起來速度超快!我的 script 可在此下載


  1. 這樣說可能會引起誤會,因此特別註明一下:其實 FontCreator、FontLab Studio 等產品也都有 Scripting 的能力,只是我以前不會用 :p 

How to get the latest Droid font family

這篇只是給自己作個紀錄。

最新版 Droid 字型可以直接從 Android 的 Git repository 取得,不需要從 Android SDK 解出來。位址在 platform/frameworks/base.git/data/fonts,點選 snapshot 可以將這個資料夾打包下載。

A Non-Free OpenType Font Pack

OpenTypeFontsSample (by BCSEEATI)

意外發現 MSDN 中有一包還不錯的 OpenType 字型。這包字型的本意只是用來展示 WPF 的 OpenType 處理能力,所以僅包含英文、數字及部份標點符號,版權則仍由 Ascender 持有,如果要用於其他用途,必須聯絡 Ascender。

這些字型的特色是它們分別支援了不同的 OpenType Features,例如 Small Caps、Ligatures、Old Style Figures、Swashes、Alternates 等,如果不在意以上所述缺點並想要玩玩看 OpenType Features 的話,可到 Using OpenType Fonts Sample 這一頁下載。

P.S. 如果想玩 OpenType Features,請找 Windows 7 中附帶的 Gabriola 字型會更好玩,實在很難得可以看到檔案大小這麼大的英文字型。

I don’t know what is this pattern.

最近幾天每天都在寫 C#,寫的是某個自己要用的程式,由於只是自己用的,就只求速成,沒有花太多精神在設計上,直到這兩天才感覺到這樣不行,我實在重複了太多次相同的程式,因此決定改寫。

要描述我的需求太麻煩,直接看 code!我理想中的介面是長這樣:

Console.WriteLine(English.Hello());
Console.WriteLine(Chinese.Hello());
Console.WriteLine(Japanese.Hello());
Console.WriteLine(French.Hello());
  1. 上面的 EnglishChineseJapaneseFrench 都是 subclass,Hello() 是 static method,所以不需要實例就能直接呼叫,呼叫了之後就會回傳各國語言的 Hello。
  2. 同時我希望上述這些 subclass 只要繼承某個 class,就能有一個預設的 Hello(),當有必要時我再 override 這個 method。
Read More »

ViewSonic VA1916w Color Profile for Mac

心血來潮,幫我的另一台螢幕也作了 Color Profile,我自己覺得這次做得還不錯。

ASUS PW101S Color Profile for Mac

網路上找不到,安裝光碟也沒附,只好憑肉眼自己作一份,好像還是有色偏(而且也是不難察覺的程度 XD),不過至少比預設值好很多了 :p