2010-11-15 124 views
4

我正在寫低級別的C應用程序,而且我正在計劃使用數組來存儲我的字體。TrueType to C Array

問題是,我想使用的字體是TrueType格式。如何將我:

  1. 轉換TTF到大型,B & W,位圖字體 沒有任何形式的AA(不嚴格的編程 相關);

  2. 解析B & W位圖字體到C字節數組中。

我應該使用什麼格式的位圖?對於我來說,應該很簡單,一個有超過一年經驗的初學者程序員可以編寫一個解析器來將它存儲在所述數組中。

我不想使用外部庫,我想保留C標準。庫。用量降至最低。這是一個大學項目,我想自己寫一切。

+0

我要睡覺了,明天我會接受/評論的答案。提前致謝! – 2010-11-15 02:13:13

回答

3

這不是最專業的或乾淨的,但這裏是我在您的情況做:

  • 選擇等寬字體和大小每個字符是像素的整數倍。
  • 打開GIMP(或您最喜歡的圖像編輯程序),並製作一個圖像,其寬度爲font_width像素,高度爲font_height*96
  • 將一個文本元素錨定在包含<space> <newline> ! <newline> " <newline> # <newline> ...(即所有ASCII字形)的左上角。
  • 將它保存爲非壓縮的圖像格式,易於處理,如PNM。
  • 將它加載到uint8_t [96][font_height][font_width]類型的數組中。
+0

不乾淨,但我最喜歡你的想法。謝謝! – 2010-11-15 11:55:35

1

使用Win32 GDI API編寫位圖:創建一個位圖,打印一個字母,使用GetPixel來讀取它。序列化爲.c文件。

1

嘗試Freetype。它可以爲您提供可用於創建位圖的數據。