adds generated fonts + script
This commit is contained in:
parent
9705273d18
commit
3dffca483d
2
Makefile
2
Makefile
@ -1,6 +1,6 @@
|
||||
CFLAGS=-g -Wall -lm
|
||||
|
||||
fbdash: fbdash.c fblib.o fbfont.o
|
||||
fbdash: fbdash.c fblib fbfont
|
||||
gcc fblib.o fbfont.o -o $@ $(CFLAGS) $<
|
||||
|
||||
fblib: fblib.o
|
||||
|
||||
7
fbdash.c
7
fbdash.c
@ -54,9 +54,10 @@ void draw() {
|
||||
|
||||
|
||||
|
||||
char *text = "Hello!";
|
||||
//render_string(fbp, arial_32, text, 0, 0, 255, 255, 255);
|
||||
render_string(fbp, basic_8, text, 0, 0, 255, 255, 255);
|
||||
char *text = "Hell O_o!";
|
||||
render_string(fbp, ubuntu_mono_48, text, 15, 0, 255, 255, 255);
|
||||
render_string(fbp, ubuntu_mono_24, text, 15, 50, 255, 255, 255);
|
||||
render_string(fbp, basic_8, text, 15, 100, 255, 255, 255);
|
||||
}
|
||||
|
||||
// application entry point
|
||||
|
||||
15
fbfont.c
15
fbfont.c
@ -2,9 +2,16 @@
|
||||
#include "fbfont.h"
|
||||
|
||||
#include "fonts/dhepper-font8x8/font8x8_basic.h"
|
||||
#include "fonts/Arial-32px.h"
|
||||
#include "fonts/Ubuntu_Mono_24.h"
|
||||
#include "fonts/Ubuntu_Mono_48.h"
|
||||
|
||||
|
||||
fbfont arial_32 = { 22, 37, (char*)xbm_arial_32 };
|
||||
fbfont basic_8 = { 8, 8, (char*)font8x8_basic };
|
||||
/*
|
||||
* width
|
||||
* height
|
||||
* offset
|
||||
* *xbm
|
||||
*/
|
||||
fbfont basic_8 = { 8, 8, 0, (char*)font8x8_basic };
|
||||
fbfont ubuntu_mono_24 = { 8, 24, -32, (char*)xbmFont_Ubuntu_Mono_24 };
|
||||
fbfont ubuntu_mono_48 = { 16, 48, -32, (char*)xbmFont_Ubuntu_Mono_48 };
|
||||
|
||||
|
||||
5
fbfont.h
5
fbfont.h
@ -5,12 +5,15 @@
|
||||
struct s_fbfont {
|
||||
unsigned char width;
|
||||
unsigned char height;
|
||||
short offset;
|
||||
char *xbm;
|
||||
};
|
||||
|
||||
typedef struct s_fbfont fbfont;
|
||||
|
||||
extern fbfont arial_32;
|
||||
extern fbfont basic_8;
|
||||
extern fbfont arial_24;
|
||||
extern fbfont ubuntu_mono_24;
|
||||
extern fbfont ubuntu_mono_48;
|
||||
|
||||
#endif
|
||||
|
||||
8
fblib.c
8
fblib.c
@ -179,7 +179,7 @@ void render_string(char *fbp, fbfont font, char *text, int x, int y, int r, int
|
||||
// each character
|
||||
for (int char_pos = 0; char_pos < text_length; char_pos++) {
|
||||
//int char_code = 0;
|
||||
int char_code = *(text + char_pos);
|
||||
int char_code = *(text + char_pos) + font.offset;
|
||||
int x_offset = char_pos * font.width + x;
|
||||
|
||||
// each line of pixels
|
||||
@ -196,20 +196,20 @@ void render_string(char *fbp, fbfont font, char *text, int x, int y, int r, int
|
||||
char mask = 1 << bit_number;
|
||||
if(current_byte & mask) {
|
||||
// plot the pixel
|
||||
printf("x");
|
||||
//printf("x");
|
||||
|
||||
int x_pos = x_offset + byte_num * 8 + bit_number;
|
||||
put_pixel(fbp, x_pos, y_pos, 255, 255, 255);
|
||||
}
|
||||
else {
|
||||
// leave empty (or maybe plot 'text backgr color')
|
||||
printf(" ");
|
||||
//printf(" ");
|
||||
}
|
||||
} // end "for bit_number"
|
||||
|
||||
} // end "for byte_num"
|
||||
|
||||
printf("\n");
|
||||
//printf("\n");
|
||||
|
||||
} // end "for line"
|
||||
|
||||
|
||||
@ -1,18 +0,0 @@
|
||||
#define A_width 22
|
||||
#define A_height 37
|
||||
|
||||
static char xbm_arial_32[1][111] = {
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x3E, 0x00,
|
||||
0x00, 0x3E, 0x00, 0x00, 0x77, 0x00, 0x00, 0x77, 0x00, 0x00, 0x77, 0x00,
|
||||
0x80, 0xE3, 0x00, 0x80, 0xE3, 0x00, 0xC0, 0xE3, 0x00, 0xC0, 0xC1, 0x01,
|
||||
0xC0, 0xC1, 0x01, 0xE0, 0x80, 0x03, 0xE0, 0x80, 0x03, 0xE0, 0xE9, 0x07,
|
||||
0xF0, 0xFF, 0x07, 0xF0, 0xFF, 0x07, 0x78, 0x00, 0x0F, 0x38, 0x00, 0x0E,
|
||||
0x38, 0x00, 0x1E, 0x3C, 0x00, 0x1C, 0x1C, 0x00, 0x1C, 0x1C, 0x00, 0x3C,
|
||||
0x0E, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00
|
||||
}
|
||||
};
|
||||
|
||||
489
fonts/Ubuntu_Mono_24.h
Normal file
489
fonts/Ubuntu_Mono_24.h
Normal file
@ -0,0 +1,489 @@
|
||||
#ifndef __XBM_FONT_Ubuntu_Mono_24_H__
|
||||
#define __XBM_FONT_Ubuntu_Mono_24_H__
|
||||
|
||||
/*
|
||||
Ubuntu_Mono//UbuntuMono-B.ttf bits
|
||||
generated with genXBMfonts, https://github.com/masterzorag/xbm_tools
|
||||
2015, masterzorag@gmail.com
|
||||
*/
|
||||
|
||||
//#define LOWER_ASCII_CODE 32
|
||||
//#define UPPER_ASCII_CODE 126
|
||||
//#define FONT_W 8
|
||||
//#define FONT_H 24
|
||||
//#define BITS_IN_BYTE 8
|
||||
|
||||
char xbmFont_Ubuntu_Mono_24[95][24] = {
|
||||
{ /* 0: ASCII 032 [ ] bits */
|
||||
0x00
|
||||
},
|
||||
{ /* 1: ASCII 033 [!] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C,
|
||||
0x0C, 0x0C, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 2: ASCII 034 ["] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 3: ASCII 035 [#] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xD8, 0xD8, 0xFF, 0xFF, 0x6C,
|
||||
0xFF, 0xFF, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 4: ASCII 036 [$] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7C, 0x7E, 0x03, 0x03, 0x0F, 0x3E,
|
||||
0x78, 0x60, 0x60, 0x7F, 0x3E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 5: ASCII 037 [%] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x69, 0x69, 0x39, 0x3E, 0x18,
|
||||
0xCC, 0x2C, 0x26, 0x26, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 6: ASCII 038 [&] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x66, 0x36, 0x1C, 0xDE,
|
||||
0xFB, 0xF3, 0x73, 0xFE, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 7: ASCII 039 ['] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 8: ASCII 040 [(] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x18, 0x0C, 0x0C, 0x06, 0x06, 0x06,
|
||||
0x06, 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 9: ASCII 041 [)] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x06, 0x0C, 0x0C, 0x18, 0x18, 0x30, 0x30, 0x30,
|
||||
0x30, 0x30, 0x30, 0x18, 0x18, 0x1C, 0x0E, 0x04, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 10: ASCII 042 [*] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x7F, 0x7F, 0x1C, 0x3E,
|
||||
0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 11: ASCII 043 [+] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18,
|
||||
0xFF, 0xFF, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 12: ASCII 044 [,] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x0C, 0x1C, 0x1C, 0x18, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 13: ASCII 045 [-] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E,
|
||||
0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 14: ASCII 046 [.] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x08, 0x1C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 15: ASCII 047 [/] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0x60, 0x60, 0x60, 0x30, 0x30, 0x30,
|
||||
0x18, 0x18, 0x18, 0x0C, 0x0C, 0x0C, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 16: ASCII 048 [0] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x3E, 0x77, 0x63, 0x6B, 0x6B,
|
||||
0x63, 0x63, 0x77, 0x3E, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 17: ASCII 049 [1] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1C, 0x1F, 0x1A, 0x18, 0x18,
|
||||
0x18, 0x18, 0x18, 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 18: ASCII 050 [2] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x64, 0x60, 0x60, 0x30,
|
||||
0x18, 0x0C, 0x06, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 19: ASCII 051 [3] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7F, 0x60, 0x60, 0x3C, 0x3C,
|
||||
0x70, 0x60, 0x70, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 20: ASCII 052 [4] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x70, 0x78, 0x6C, 0x66, 0x63,
|
||||
0xFF, 0xFF, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 21: ASCII 053 [5] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x06, 0x06, 0x1E, 0x3E,
|
||||
0x70, 0x60, 0x60, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 22: ASCII 054 [6] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x3C, 0x0E, 0x02, 0x1F, 0x7F,
|
||||
0x63, 0x63, 0x67, 0x3E, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 23: ASCII 055 [7] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x60, 0x30, 0x18, 0x18,
|
||||
0x0C, 0x0C, 0x04, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 24: ASCII 056 [8] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x63, 0x63, 0x36, 0x3E,
|
||||
0x73, 0x63, 0x63, 0x7F, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 25: ASCII 057 [9] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x3E, 0x73, 0x63, 0x63, 0x7E,
|
||||
0x7C, 0x20, 0x38, 0x1E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 26: ASCII 058 [:] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x08,
|
||||
0x00, 0x00, 0x08, 0x1C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 27: ASCII 059 [;] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x08,
|
||||
0x00, 0x00, 0x0C, 0x1C, 0x1C, 0x18, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 28: ASCII 060 [<] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0x7C, 0x0E,
|
||||
0x0E, 0x7C, 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 29: ASCII 061 [=] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F,
|
||||
0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 30: ASCII 062 [>] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x3E, 0x70,
|
||||
0x70, 0x3E, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 31: ASCII 063 [?] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x7F, 0x60, 0x60, 0x70, 0x38,
|
||||
0x1C, 0x0C, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 32: ASCII 064 [@] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0xC6, 0xF3, 0xFB, 0xDB,
|
||||
0xDB, 0xDB, 0xFB, 0xF3, 0x06, 0xFC, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 33: ASCII 065 [A] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x78, 0x6C, 0x6C, 0xCC,
|
||||
0xFE, 0xFE, 0xC6, 0xC7, 0xC7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 34: ASCII 066 [B] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x33, 0x33, 0x1F, 0x3F,
|
||||
0x63, 0x63, 0x63, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 35: ASCII 067 [C] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xFE, 0x86, 0x03, 0x03, 0x03,
|
||||
0x03, 0x03, 0x86, 0xFE, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 36: ASCII 068 [D] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x33, 0x63, 0x63, 0x63,
|
||||
0x63, 0x63, 0x33, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 37: ASCII 069 [E] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x03, 0x03, 0x3F, 0x3F,
|
||||
0x03, 0x03, 0x03, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 38: ASCII 070 [F] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x03, 0x03, 0x3F, 0x3F,
|
||||
0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 39: ASCII 071 [G] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFE, 0x06, 0x03, 0x03, 0xC3,
|
||||
0xC3, 0xC3, 0xC6, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 40: ASCII 072 [H] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x63, 0x63, 0x7F, 0x7F,
|
||||
0x63, 0x63, 0x63, 0x63, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 41: ASCII 073 [I] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0x0C, 0x0C, 0x0C, 0x0C,
|
||||
0x0C, 0x0C, 0x0C, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 42: ASCII 074 [J] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60,
|
||||
0x60, 0x60, 0x72, 0x3F, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 43: ASCII 075 [K] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x63, 0x33, 0x1B, 0x0F, 0x0F,
|
||||
0x1B, 0x33, 0x73, 0x63, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 44: ASCII 076 [L] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
|
||||
0x03, 0x03, 0x03, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 45: ASCII 077 [M] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x67, 0x67, 0x67, 0x7B, 0x5B,
|
||||
0x5B, 0x43, 0x43, 0x43, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 46: ASCII 078 [N] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x67, 0x6F, 0x6F, 0x6B,
|
||||
0x7B, 0x73, 0x73, 0x63, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 47: ASCII 079 [O] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0xE7, 0xC3, 0xC3, 0xC3,
|
||||
0xC3, 0xC3, 0xE7, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 48: ASCII 080 [P] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x63, 0x63, 0x63, 0x3F,
|
||||
0x1F, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 49: ASCII 081 [Q] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0xE7, 0xC3, 0xC3, 0xC3,
|
||||
0xC3, 0xC3, 0xE7, 0x7E, 0x3C, 0x38, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 50: ASCII 082 [R] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x73, 0x63, 0x73, 0x3F,
|
||||
0x1F, 0x1B, 0x33, 0x33, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 51: ASCII 083 [S] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x03, 0x03, 0x0F, 0x3E,
|
||||
0x78, 0x60, 0x60, 0x7F, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 52: ASCII 084 [T] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x18, 0x18, 0x18, 0x18,
|
||||
0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 53: ASCII 085 [U] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63,
|
||||
0x63, 0x63, 0x63, 0x3E, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 54: ASCII 086 [V] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0xC3, 0x66, 0x66, 0x66, 0x66,
|
||||
0x24, 0x3C, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 55: ASCII 087 [W] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0xC3, 0xC3, 0xC3, 0xDB, 0xFB,
|
||||
0xFF, 0xFF, 0xE7, 0xE7, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 56: ASCII 088 [X] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xC6, 0x6C, 0x7C, 0x38, 0x38,
|
||||
0x7C, 0x6C, 0xEE, 0xC6, 0xC7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 57: ASCII 089 [Y] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x66, 0x66, 0x66, 0x3C, 0x3C,
|
||||
0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 58: ASCII 090 [Z] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x70, 0x38, 0x18, 0x1C,
|
||||
0x0C, 0x06, 0x06, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 59: ASCII 091 [[] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x3E, 0x3E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
|
||||
0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3E, 0x3E, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 60: ASCII 092 [\] bits */
|
||||
0x00
|
||||
},
|
||||
{ /* 61: ASCII 093 []] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x3E, 0x3E, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
|
||||
0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3E, 0x3E, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 62: ASCII 094 [^] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x6C, 0xEE, 0xC6, 0x86,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 63: ASCII 095 [_] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 64: ASCII 096 [`] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x30, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 65: ASCII 097 [a] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7E, 0x60,
|
||||
0x7E, 0x7F, 0x63, 0x7F, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 66: ASCII 098 [b] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x1F, 0x3F, 0x73,
|
||||
0x63, 0x63, 0x73, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 67: ASCII 099 [c] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x07,
|
||||
0x03, 0x03, 0x07, 0x7E, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 68: ASCII 100 [d] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x7E, 0x67,
|
||||
0x63, 0x63, 0x67, 0x7E, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 69: ASCII 101 [e] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x3E, 0x63,
|
||||
0x7F, 0x7F, 0x03, 0x7E, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 70: ASCII 102 [f] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x7C, 0x0C, 0x0C, 0x7F, 0x7F, 0x0C,
|
||||
0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 71: ASCII 103 [g] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x67,
|
||||
0x63, 0x63, 0x67, 0x7E, 0x7E, 0x60, 0x3F, 0x1E, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 72: ASCII 104 [h] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x3F, 0x3F, 0x63,
|
||||
0x63, 0x63, 0x63, 0x63, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 73: ASCII 105 [i] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x0F, 0x0F, 0x0C, 0x0C,
|
||||
0x0C, 0x0C, 0x0C, 0x7C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 74: ASCII 106 [j] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x7C, 0x7C, 0x60, 0x60,
|
||||
0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 75: ASCII 107 [k] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x73, 0x3B, 0x1B,
|
||||
0x0F, 0x1F, 0x3B, 0x73, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 76: ASCII 108 [l] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C,
|
||||
0x0C, 0x0C, 0x0C, 0x7C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 77: ASCII 109 [m] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x6B,
|
||||
0x6B, 0x6B, 0x63, 0x63, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 78: ASCII 110 [n] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x63,
|
||||
0x63, 0x63, 0x63, 0x63, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 79: ASCII 111 [o] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x3E, 0x67,
|
||||
0x63, 0x63, 0x73, 0x3E, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 80: ASCII 112 [p] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x73,
|
||||
0x63, 0x63, 0x73, 0x3F, 0x1F, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 81: ASCII 113 [q] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x67,
|
||||
0x63, 0x63, 0x67, 0x7E, 0x7C, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 82: ASCII 114 [r] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x06,
|
||||
0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 83: ASCII 115 [s] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7F, 0x03,
|
||||
0x0E, 0x3C, 0x60, 0x7F, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 84: ASCII 116 [t] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x7F, 0x7F, 0x0C,
|
||||
0x0C, 0x0C, 0x0C, 0x7C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 85: ASCII 117 [u] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x63,
|
||||
0x63, 0x63, 0x63, 0x7F, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 86: ASCII 118 [v] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0xC6, 0x66,
|
||||
0x66, 0x2C, 0x3C, 0x38, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 87: ASCII 119 [w] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xC7, 0xD7,
|
||||
0xFE, 0xFE, 0xFE, 0xEE, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 88: ASCII 120 [x] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xCE, 0x7C,
|
||||
0x38, 0x78, 0x6C, 0xCE, 0xC7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 89: ASCII 121 [y] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0x6C,
|
||||
0x6C, 0x6C, 0x38, 0x38, 0x30, 0x18, 0x1F, 0x0F, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 90: ASCII 122 [z] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x38,
|
||||
0x18, 0x0C, 0x06, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 91: ASCII 123 [{] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x78, 0x7C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x07,
|
||||
0x07, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x7C, 0x78, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 92: ASCII 124 [|] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C,
|
||||
0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 93: ASCII 125 [}] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x0F, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x70,
|
||||
0x70, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x0F, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
},
|
||||
{ /* 94: ASCII 126 [~] bits */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCE,
|
||||
0xFF, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
}
|
||||
};
|
||||
#endif //__XBM_FONT_H__
|
||||
1047
fonts/Ubuntu_Mono_48.h
Normal file
1047
fonts/Ubuntu_Mono_48.h
Normal file
File diff suppressed because it is too large
Load Diff
180
fonts/genXBMfonts.sh
Executable file
180
fonts/genXBMfonts.sh
Executable file
@ -0,0 +1,180 @@
|
||||
#!/bin/bash
|
||||
|
||||
# file: genXBMfonts.sh
|
||||
# brief: generate font glyphs and C header file from XBM images
|
||||
# author: 2015, masterzorag@gmail.com
|
||||
|
||||
# This script uses ImageMagick convert to generate images of glyphs
|
||||
|
||||
# 1. rebuild $fontDestDir/xbm_font.h
|
||||
# ./genXBMfonts.sh Razor_1911/ 16 16
|
||||
|
||||
# 2. use generated XBM fonts: hardcode in xbm_print
|
||||
# cp Razor_1911/xbm/xbm_font.h xbm_font.h
|
||||
|
||||
# 3. rebuild xbm_tools
|
||||
# make clean && make
|
||||
|
||||
|
||||
# modded by Florian Klemenz
|
||||
# Usage example:
|
||||
# mkdir Ubuntu_Mono
|
||||
# cp /usr/share/fonts/truetype/ubuntu/UbuntuMono-B.ttf Ubuntu_Mono/
|
||||
# ./genXBMfonts.sh Ubuntu_Mono/ 24 48 32
|
||||
# | | |
|
||||
# | | -----> input font size for rendering (increase to fill space better, decrease if overflow)
|
||||
# | --------> output height (must be multiple of 8 to work properly)
|
||||
# -----------> output width (must be multiple of 8 to work properly)
|
||||
|
||||
if [ -z $1 ]; then
|
||||
echo "$0 FontDir Font_W Font_H"
|
||||
echo "$0 Razor_1911 16 16"
|
||||
exit
|
||||
fi
|
||||
|
||||
### arguments, keep 16x16 as default
|
||||
|
||||
FontDir=$1
|
||||
Font_W=$2
|
||||
Font_H=$3
|
||||
|
||||
name=$(basename $FontDir)
|
||||
filename="${name}_${Font_H}"
|
||||
|
||||
pointsize=$4
|
||||
#pointsize=$(expr ${Font_H} - 8)
|
||||
### process argv end here ###
|
||||
|
||||
fonts="$fonts $(echo "$FontDir"/*.ttf)"
|
||||
|
||||
# ImageMagick supported extension: pnm, png, bmp, xpm, pbm... here we deal with xbm
|
||||
type=xbm
|
||||
|
||||
echo "Found" $(echo "$fonts" | wc -w) "fonts"
|
||||
|
||||
# for each font
|
||||
for i in $fonts
|
||||
do
|
||||
echo "$i"
|
||||
fontDestDir="$FontDir/$type"
|
||||
mkdir -p "$fontDestDir"
|
||||
|
||||
t=$fontDestDir/temp
|
||||
out=${filename}.h
|
||||
#out=$fontDestDir/${filename}.h
|
||||
echo "$t, $out"
|
||||
|
||||
if [ -f "$t" ]
|
||||
then
|
||||
rm $t
|
||||
rm $out
|
||||
fi
|
||||
|
||||
# keep track of array index
|
||||
n="0"
|
||||
|
||||
# chars=" ! a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 + - / # . , \*"
|
||||
# for c in $chars
|
||||
# Better: do a printable range set, start from char ' ' (space): ASCII 32
|
||||
# ASCII 127 is NOT printable and will write output.h file in binary form!
|
||||
# keep it under 127 for now...
|
||||
for c in `seq 32 126`
|
||||
do
|
||||
#printf "%d\t\x%x\n" $c $c
|
||||
|
||||
# compose decimal representation and label
|
||||
d="$(printf %.3d $c)" #printf "\x$(printf %x $c)"
|
||||
D="$(printf "\x$(printf %x $c)")"
|
||||
|
||||
# 1. build commented label header: array idx, ascii code, glyph
|
||||
echo "{ /* $n: ASCII $d [$D] bits */" >> $t
|
||||
|
||||
# Generate (Font_W x Font_H) images, 1bpp of each character in ASCII range
|
||||
# call imagemagick tool to convert bitmap
|
||||
convert \
|
||||
+antialias \
|
||||
-depth 1 -colors 2 \
|
||||
-size "$Font_W"x"$Font_H" \
|
||||
-background white -fill black \
|
||||
-font "$i" \
|
||||
-pointsize ${pointsize} \
|
||||
-density 72 \
|
||||
-gravity center \
|
||||
label:$D \
|
||||
"$fontDestDir/$d.$type" &> /dev/null
|
||||
|
||||
# 2. check to build data bits
|
||||
if [ -f "$fontDestDir/$d.$type" ]
|
||||
then
|
||||
echo "$n: $d.$type [$D]"
|
||||
|
||||
# extra: dump single XBM to console
|
||||
./xbm_dump "$fontDestDir/$d.$type"
|
||||
|
||||
# 3a. strip data bits and push to output
|
||||
tail -n+4 "$fontDestDir/$d.$type" | head --bytes -5 >> $t
|
||||
|
||||
else
|
||||
echo "$n: $d.$type does not exists!"
|
||||
# 3b. build zeroed data bit header for a missing ASCII code
|
||||
printf "\t0x00" >> $t
|
||||
|
||||
fi
|
||||
|
||||
# 4. close data bits footer
|
||||
printf "\n},\n" >> $t
|
||||
|
||||
# increase array count
|
||||
((n+=1))
|
||||
|
||||
done
|
||||
printf "I: range of %d ASCII codes\n" $n
|
||||
|
||||
|
||||
# 1. build top C header
|
||||
printf "#ifndef __XBM_FONT_${filename}_H__\n" > $out
|
||||
printf "#define __XBM_FONT_${filename}_H__\n" >> $out
|
||||
|
||||
printf "\n/*\n\t%s bits\n" $fonts >> $out
|
||||
printf "\tgenerated with genXBMfonts, https://github.com/masterzorag/xbm_tools\n" >> $out
|
||||
printf "\t2015, masterzorag@gmail.com\n*/\n\n" >> $out
|
||||
|
||||
printf "//#define LOWER_ASCII_CODE %d\n" 32 >> $out
|
||||
printf "//#define UPPER_ASCII_CODE %d\n" 126 >> $out
|
||||
printf "//#define FONT_W %d\n" $Font_W >> $out
|
||||
printf "//#define FONT_H %d\n" $Font_H >> $out
|
||||
printf "//#define BITS_IN_BYTE %d\n\n" 8 >> $out
|
||||
|
||||
grr=$( expr $Font_W \* $Font_H / 8 )
|
||||
echo "char xbmFont_${filename}[$n][$grr] = {" >> $out
|
||||
|
||||
# 2. fix: remove last ','
|
||||
head --bytes -2 $t >> $out
|
||||
|
||||
# 3. build bottom C header: add "};"
|
||||
printf "\n};\n" >> $out
|
||||
|
||||
printf "#endif //__XBM_FONT_H__\n" >> $out
|
||||
|
||||
# extra: cleanup from temp
|
||||
rm $t
|
||||
|
||||
done # for i in fonts
|
||||
|
||||
|
||||
# count and report exported
|
||||
n=$(ls $fontDestDir/*.$type | wc -l)
|
||||
printf "I: succesfully parsed %d ASCII codes\nDone\n\n" $n
|
||||
|
||||
# inquiry
|
||||
file $out
|
||||
|
||||
# preview outputted C header
|
||||
head -14 $out
|
||||
echo "..."
|
||||
tail -6 $out
|
||||
|
||||
# extra: look at exported XBM(s)
|
||||
#viewnior $fontDestDir &> /dev/null
|
||||
|
||||
exit
|
||||
Loading…
x
Reference in New Issue
Block a user