76 unsigned char header [62] = {
93 0xF0, 0xFF, 0xFF, 0xFF,
122 while (fgets (instring,
MAXSTRING - 1, stdin) != NULL) {
124 sscanf (instring,
"%X:%s", &code_point, glyph);
126 glyph_width = strlen (glyph) / (glyph_height / 4);
127 snprintf (filename,
MAXFILENAME,
"U+%06X.bmp", code_point);
128 header [18] = glyph_width;
129 header [22] = -glyph_height;
130 if ((outfp = fopen (filename,
"w")) != NULL) {
131 for (i = 0; i < 62; i++) fputc (header[i], outfp);
139 for (i = 0; i < glyph_height; i++) {
141 sscanf (&glyph[string_index],
"%2X", &nextbyte);
143 fputc (nextbyte, outfp);
144 if (glyph_width <= 8) {
145 fputc (0x00, outfp); fputc (0x00, outfp); fputc (0x00, outfp);
148 sscanf (&glyph[string_index],
"%2X", &nextbyte);
150 fputc (nextbyte, outfp);
151 if (glyph_width <= 16) {
152 fputc (0x00, outfp); fputc (0x00, outfp);
155 sscanf (&glyph[string_index],
"%2X", &nextbyte);
157 fputc (nextbyte, outfp);
158 if (glyph_width <= 24) {
162 sscanf (&glyph[string_index],
"%2X", &nextbyte);
164 fputc (nextbyte, outfp);
int main()
The main function.