2010-11-15 118 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。它可以为您提供可用于创建位图的数据。