4

我正在编写一个低级 C 应用程序,并且我打算使用一个数组来存储我的字体。

问题是,我想使用的字体是 TrueType 格式。我该怎么做:

  1. 将 TTF 转换为大尺寸、黑白、位图字体,没有任何类型的 AA(与编程无关);

  2. 将 B&W 位图字体解析为 C 字节数组。

我应该为位图使用什么格式?应该足够简单,我,一个只有一年多一点经验的初学者程序员可以编写一个解析器来将它存储在所述数组中。

我不想使用外部库,我想保留 C Std。库。使用量降到最低。这是一个大学项目,我想自己写一切。

4

3 回答 3

3

这不是最专业或最干净的,但这是我在你的情况下会做的:

  • 选择等宽字体和每个字符是整数像素的大小。
  • 打开 GIMP(或您最喜欢的图像编辑程序)并制作font_width像素宽和font_height*96像素高的图像。
  • 制作一个锚定在左上角的包含<space> <newline> ! <newline> " <newline> # <newline>... 的文本元素(即所有 ASCII 字形)。
  • 将其保存为易于处理的未压缩图像格式,例如 PNM。
  • 将其加载到类型为 的数组中uint8_t [96][font_height][font_width]
于 2010-11-15T03:28:03.270 回答
1

使用 Win32 GDI API 编写位图:创建位图、打印字母、使用GetPixel读取它。序列化为 .c 文件。

于 2010-11-15T02:21:17.243 回答
1

尝试自由类型。它可以为您提供可用于创建位图的数据。

于 2010-11-15T02:25:03.910 回答