#!/usr/bin/python

import ImageFont

def get_font(fontname, size, characters):
    f=ImageFont.truetype(fontname,size)
    return [(c,f.getmask(c)) for c in characters]

def print_c_head(): 
    print """typedef struct pix_font {
\tint w;
\tint h;
\tchar *values;
} pix_font_t;\n"""

def print_c(c,mask):

    print "pix_font_t font_%s = { "%c

    w,h=mask.size
    print "\t.w=%d;"%w
    print "\t.h=%d;"%h
    
    print "\t.values = {"

    for y in range(h):
        print "\t\t",
        for x in range(w):
            print "%d,"%int(bool(mask.getpixel((x,y)))),
        print 
    print "\t};"
    print "}\n"

charlist=[chr(x) for x in range(ord('A'),1+ord('z'))]

# font from http://dsg4.com/04/extra/bitmap/stuff/04b_03.zip
# according to http://dsg4.com/04/extra/bitmap/ the natural size for 
# this font is 8
print_c_head()
[print_c(*x) for x in get_font('04B_03__.TTF',8,charlist)]
