1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
import Image,struct
img = Image.open('blu.tiff')
class CharData(object):
def __init__(self, data):
if data is None:
self.data = [ [] for y in range(7) ]
else:
self.data = data
def concat( self, other ):
for y in range(7):
self.data[y] += other.data[y]
def get_bindata(self):
ll = len(self.data[0])
ret=''
for y in reversed(range(7)):
for x in self.data[y]:
ret += struct.pack('BBBB',*x)
return ret
def save_as(self, name):
height = 7
width = len(self.data[0])
outimg = Image.frombuffer( "RGBA", (width, height),
self.get_bindata())
outimg.save(name)
def char_at(char_x,char_y):
"""
char_x specifies, zero based, the x position of the character
"""
start_x = 1+char_x+ 14*char_x+2
start_y = 1+char_y*22+1
print "Starting at %i,%i" %( start_x,start_y)
return CharData([[ img.getpixel( (start_x+2*x,start_y+2*y) ) for x in range(5)] for y in range(7)])
chardata = CharData(None)
for x in range(16): #0x00 - 0x0F
chardata.concat( char_at(0,x) )
for x in range(16): #0x10 - 0x1F
chardata.concat( char_at(0,x) )
for x in range(16): #0x20 - 0x2F
chardata.concat( char_at(1,x) )
for x in range(16): #0x30 - 0x3F
chardata.concat( char_at(2,x) )
for x in range(16): #0x40 - 0x4F
chardata.concat( char_at(3,x) )
for x in range(16): #0x50 - 0x5F
chardata.concat( char_at(4,x) )
for x in range(16): #0x60 - 0x6F
chardata.concat( char_at(5,x) )
for x in range(16): #0x70 - 0x7F
chardata.concat( char_at(6,x) )
for x in range(16): #0x80 - 0x8F
chardata.concat( char_at(0,x) )
for x in range(16): #0x90 - 0x9F
chardata.concat( char_at(0,x) )
for x in range(16): #0xA0 - 0xAF
chardata.concat( char_at(7,x) )
for x in range(16): #0xB0 - 0xBF
chardata.concat( char_at(8,x) )
for x in range(16): #0xC0 - 0xCF
chardata.concat( char_at(9,x) )
for x in range(16): #0xD0 - 0xDF
chardata.concat( char_at(10,x) )
for x in range(16): #0xE0 - 0xEF
chardata.concat( char_at(11,x) )
for x in range(16): #0xF0 - 0xFF
chardata.concat( char_at(12,x) )
print chardata.save_as('7x5font.tiff')
|