C заголовочный файл с растровыми шрифтами

Я должен сделать некоторый элементарный текстовый рендеринг к пиксельному буферу, и я думаю, что, индексируя таблицу символом с представлением букв, поскольку двоичный массив был бы более чем достаточно... Кто-либо знает о бесплатном заголовке как таковом?

Пример:

char data[256][8][8];
void init()
{
  data['a'] = {
    {0,0,1,1,1,0,0,0},
    {0,1,0,0,0,1,0,0},
    {0,0,0,0,0,0,1,0},
    {0,0,1,1,1,0,1,0},
    {0,1,0,0,0,1,1,0},
    {0,1,0,0,0,0,1,0},
    {0,1,0,0,0,1,1,0},
    {0,0,1,1,1,0,1,0},
  };
}

Я мог продолжать остальную часть алфавита, но тогда я не должен буду спрашивать... ¡But, который дает мне общее представление! если нет никакого бесплатного заголовка с легко доступным растровым шрифтом, каждый ответ мог бы реализовать букву, и я мог собрать целый файл здесь ^_^

20
задан fortran 28 January 2010 в 17:38
поделиться

4 ответа

Update: Я попробовал этот подход, и персонажи вышли довольно искаженными. Возможно, Нимбус - плохой выбор шрифта.

: Пробую этот подход с имагогическим подходом. Вы можете сгенерировать каждый символ следующим образом:

convert -resize 7x13\! -font Nimbus-Mono-Regular -pointsize 10 label:A A.xbm

A.xbm выглядит как:

#define A_width 7
#define A_height 13
static char A_bits[] = {
  0x00, 0x00, 0x00, 0x00, 0x1C, 0x08, 0x00, 0x3C, 0x00, 0x66, 0x00, 0x00,
  0x00, };

Loop through the characters you need and gather this in a single header file (Просмотреть нужные символы и собрать их в один заголовочный файл).

Несмотря на то, что Nimbus-Mono-Regular - это монопространственный шрифт, иногда ширина символов отключается на пиксель. Опция преобразования "-resize 7x13!" заставляет выводить размер 7x13. Опять же, это может быть проблемой именно со шрифтом Nimbus.

16
ответ дан 30 November 2019 в 00:31
поделиться

Я знаю, что это не отвечает на ваш вопрос, но я бы порекомендовал просто использовать что-то вроде http://www.angelcode.com/products/bmfont/ для генерации Простой растровый шрифт. Загрузка файла TGA довольно прост. Я бы не ожидал, что шоуромодный шрифт выглядит очень мило.

0
ответ дан 30 November 2019 в 00:31
поделиться

Я знаю, что в gimp можно сохранять изображения в заголовочном файле c. Может быть, Вы найдете инструмент, который выполняет эту работу в командной строке. Так что вы можете автоматизировать создание. ImageMagick может как минимум загружать шрифты ttf.

EDIT: Gimp поддерживает только данные в формате RGB в качестве выходного формата, так что это не решение для Вас.

В любом случае, вот вам буква "b":


/* GIMP RGB C-Source image dump (b.c) */

static const struct {
  unsigned int   width;
  unsigned int   height;
  unsigned int   bytes_per_pixel; /* 3:RGB, 4:RGBA */ 
  char          *comment;
  unsigned char  pixel_data[8 * 8 * 3 + 1];
} gimp_image = {
  8, 8, 3,
  "Created with GIMP",
  "\377\377\377\377\377\377\0\0\0\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\0\0\0\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\0\0\0\377\377\377"
  "\0\0\0\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\0\0\0"
  "\0\0\0\377\377\377\0\0\0\377\377\377\377\377\377\377\377\377\377\377\377"
  "\0\0\0\377\377\377\377\377\377\377\377\377\0\0\0\377\377\377\377\377\377"
  "\377\377\377\0\0\0\377\377\377\377\377\377\377\377\377\0\0\0\377\377\377"
  "\377\377\377\377\377\377\0\0\0\377\377\377\377\377\377\0\0\0\377\377\377"
  "\377\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377"
  "\377\377\377",
};
2
ответ дан 30 November 2019 в 00:31
поделиться

«Пиксельные шрифты» могут быть хорошим ресурсом: http://www.alvit.de/blog/article/25-best-license-free-pixelfonts

2
ответ дан 30 November 2019 в 00:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: