TrueType to C Array - PullRequest
       32

TrueType to C Array

4 голосов
/ 15 ноября 2010

Я пишу низкоуровневое приложение C и планирую использовать массив для хранения моих шрифтов.

Проблема в том, что я хотел бы использовать шрифт в формате TrueType. Как мне:

  1. Преобразование TTF в большой, черно-белый, растровое изображение шрифт без какой-либо АА (не строго программирование связанный с);

  2. Разобрать черно-белый растровый шрифт в массив байтов C.

Какой формат я должен использовать для растрового изображения? Должно быть достаточно просто, чтобы я, начинающий программист с небольшим опытом работы, мог написать парсер для сохранения его в указанном массиве.

Я не хочу использовать внешние библиотеки, и я хотел бы сохранить C Std. Lib. использование до минимума. Это для проекта колледжа, и я хочу написать все сам.

Ответы [ 3 ]

3 голосов
/ 15 ноября 2010

Это не самый профессиональный или чистый, но вот что я бы сделал в вашей ситуации:

  • Выберите моноширинный шрифт и размер, где каждый символ представляет собой целое число пикселей.
  • Откройте GIMP (или вашу любимую программу для редактирования изображений) и создайте изображение шириной font_width пикселей и высотой font_height*96.
  • Создайте элемент текста, закрепленный в верхнем левом углу, содержащий <space> <newline> ! <newline> " <newline> # <newline> ... (т. Е. Все глифы ASCII).
  • Сохраните его в формате несжатого изображения, который легко обрабатывать, например PNM.
  • Загрузите его в массив типа uint8_t [96][font_height][font_width].
1 голос
/ 15 ноября 2010

Попробуйте Freetype .Он может предоставить вам данные, которые можно использовать для создания растрового изображения.

1 голос
/ 15 ноября 2010

Используйте Win32 GDI API для написания растровых изображений: создайте растровое изображение, напечатайте письмо, используйте GetPixel для его чтения.Сериализация в файл .c.

...