beautypg.com

Example font file (27 bytes) – Matrix Orbital GLK12232-25-SM Legacy User Manual

Page 26

background image

26

6.4.3 A Sample Font File

Let's look at a short sample font file containing only the letters "h", "i" and "j". First we need to define the
font size. For this example we'll use a 5 x 7 pixel font. Next, we have to draw the bitmaps for each of the
characters. We'll use the examples shown in Figure 6-1.

Figure 6-1 Bitmaps for h, i and j

Now the bitmaps have to be converted to bytes. If the font is 8 bits high, this is a pretty simple job because
each vertical column is simply one byte (lsb at the top). In this case, however, the font is only 7 bits high so
the bytes "wrap around" as shown in Figure 6-2.

1

2
4
8

1

2
4
8

lsb

byte 1

byte 2

byte 3

byte 4

byte 5

byte 5 overflow (ignored)

7F

04 81 80

07

Bytes "straightened out"

Figure 6-2 Bytes for a 7 bit high font

We've marked in the bits that are set for the letter "h". Remember that the bytes are "inverted", i.e. the LSB
is at the top. Each byte is shown in a different colour in the diagram. When the bytes are straightened out,
it's simple enough to find their hex values, which are shown in the diagram above each byte. Trailing zero
bytes at the end of narrow characters are not included in the file.

Now let's look at the file itself.

Example Font File (27 bytes)

0xFF 0xFF

0x05

0x07

0x68

0x6A

0x00

0x0F

0x05

0x00

0x14

0x03

0x00

0x17

0x04

0x7F

0x04

0x81

0x80

0x07

0xC4

0x3E

0x10

0x02

0x20

0xB1

0x07


The colours refer to:

Font information header

,

character 'h'

,

character 'i'

,

character 'j'

.

Explanation of the bytes in the file:

(All values below are in hex)

FF FF

placeholders for actual EOF

05 font

width

07 font

height

68

first ASCII character defined