ASCII font bitmap array 8x16 in C
#include <stdio.h>
#define FONT8x16_IMPLEMENTATION
#include "font8x16.h"
void print_char_line(unsigned char line)
{
for (int i = 0; i < 8; i++)
{
unsigned char mask = 0x80 >> i;
if (line & mask)
printf("@");
else
printf(".");
}
}
void print_string(const char* str)
{
for (int line = 0; line < 16; line++)
{
for (const char* ch = str; *ch != 0; ch++)
{
printf(" ");
print_char_line(font8x16[*ch][line]);
}
printf("\n");
}
}
int main(int argc, char* argv[])
{
if (argc != 2)
{
printf("Usage: %s <text>\n", argv[0]);
return 1;
}
print_string(argv[1]);
return 0;
}
$ gcc main.c
$ ./a.out "Hello, World!"
........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........
........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........
@@...@@. ........ ..@@@... ..@@@... ........ ........ ........ @@...@@. ........ ........ ..@@@... ...@@@.. ...@@...
@@...@@. ........ ...@@... ...@@... ........ ........ ........ @@...@@. ........ ........ ...@@... ....@@.. ..@@@@..
@@...@@. ........ ...@@... ...@@... ........ ........ ........ @@...@@. ........ ........ ...@@... ....@@.. ..@@@@..
@@...@@. .@@@@@.. ...@@... ...@@... .@@@@@.. ........ ........ @@...@@. .@@@@@.. @@.@@@.. ...@@... ..@@@@.. ..@@@@..
@@@@@@@. @@...@@. ...@@... ...@@... @@...@@. ........ ........ @@.@.@@. @@...@@. .@@@.@@. ...@@... .@@.@@.. ...@@...
@@...@@. @@@@@@@. ...@@... ...@@... @@...@@. ........ ........ @@.@.@@. @@...@@. .@@..@@. ...@@... @@..@@.. ...@@...
@@...@@. @@...... ...@@... ...@@... @@...@@. ........ ........ @@.@.@@. @@...@@. .@@..... ...@@... @@..@@.. ...@@...
@@...@@. @@...... ...@@... ...@@... @@...@@. ...@@... ........ @@@@@@@. @@...@@. .@@..... ...@@... @@..@@.. ........
@@...@@. @@...@@. ...@@... ...@@... @@...@@. ...@@... ........ @@@.@@@. @@...@@. .@@..... ...@@... @@..@@.. ...@@...
@@...@@. .@@@@@.. ..@@@@.. ..@@@@.. .@@@@@.. ...@@... ........ .@@.@@.. .@@@@@.. @@@@.... ..@@@@.. .@@@.@@. ...@@...
........ ........ ........ ........ ........ ..@@.... ........ ........ ........ ........ ........ ........ ........
........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........
........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........
........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........