Наложение текста на растровый массив в C - PullRequest
2 голосов
/ 13 января 2020

Я пытаюсь найти способ наложения некоторого текста на массив растровых изображений. Я хотел бы, чтобы стиль текста был получен из шрифта фиксированного размера (или дополненного). На данный момент у меня есть заголовочный файл со стилями моих букв, который я затем накладываю, используя «бит установлен? да? print pixel '.

ascii.h:
static char *chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:.+ ";
static char *ascii =
"        "
"   ##   "
"  ####  "
" ##  ## "
" ###### "
" ##  ## "
" ##  ## "
" ##  ## "
"        "
"        "
" #####  "
" ##  ## "
" ##  ## "
" #####  "
" ##  ## "
" ##  ## "
" #####  "
"        "
"        "
etc...

Затем печатается так:

#define CHAR_WIDTH  8
#define CHAR_HEIGHT 9

pixel = (ascii[(y * CHAR_WIDTH + x) + (CHAR_WIDTH * CHAR_HEIGHT)] ==  ' ' ? 0x000000 : 0xFFFFFF);

Это работает нормально, но выглядит довольно некрасиво, особенно если мне нужно масштабировать его. Вот пример, который был увеличен в 4 раза:

enter image description here

Большинство примеров кода, которые я видел для наложения текста, примерно на C# или на C ++ с использованием CImg. Я хотел бы сделать это, используя как можно ближе к нативному C.

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

Есть ли другой, более простой способ?

...