Я должен сделать некоторый элементарный текстовый рендеринг к пиксельному буферу, и я думаю, что, индексируя таблицу символом с представлением букв, поскольку двоичный массив был бы более чем достаточно... Кто-либо знает о бесплатном заголовке как таковом?
Пример:
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, который дает мне общее представление! если нет никакого бесплатного заголовка с легко доступным растровым шрифтом, каждый ответ мог бы реализовать букву, и я мог собрать целый файл здесь ^_^
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.
Я знаю, что это не отвечает на ваш вопрос, но я бы порекомендовал просто использовать что-то вроде http://www.angelcode.com/products/bmfont/ для генерации Простой растровый шрифт. Загрузка файла TGA довольно прост. Я бы не ожидал, что шоуромодный шрифт выглядит очень мило.
Я знаю, что в 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",
};
«Пиксельные шрифты» могут быть хорошим ресурсом: http://www.alvit.de/blog/article/25-best-license-free-pixelfonts