Root/
| 1 | #!/usr/bin/env python |
| 2 | import sys |
| 3 | import os |
| 4 | from PIL import Image |
| 5 | |
| 6 | def mknum (num): |
| 7 | return ''.join ([chr ((num >> (8 * i)) & 0xff) for i in range (4)]) |
| 8 | |
| 9 | im = Image.open (sys.argv[1]) |
| 10 | height = im.size[1] |
| 11 | width, baseline, skip = [int (x) for x in os.path.splitext (sys.argv[1])[0].split ('-')[-1].split ('+')] |
| 12 | num_glyphs = im.size[0] / width |
| 13 | sys.stdout.write (mknum (skip + num_glyphs)) |
| 14 | size1 = (3 + width * height) * 4 |
| 15 | base = (num_glyphs + skip) * 4 |
| 16 | for i in range (skip): |
| 17 | sys.stdout.write (mknum (base + (num_glyphs - 1) * size1)) |
| 18 | for i in range (skip, skip + num_glyphs): |
| 19 | sys.stdout.write (mknum (base + (i - skip) * size1)) |
| 20 | |
| 21 | im = im.convert ('RGBA') |
| 22 | pix = im.load () |
| 23 | #sys.stderr.write ('%d\n' % len (pix[0,0])) |
| 24 | for g in range (skip, skip + num_glyphs): |
| 25 | sys.stdout.write (mknum (width)) |
| 26 | sys.stdout.write (mknum (height)) |
| 27 | sys.stdout.write (mknum (baseline)) |
| 28 | for y in range (height): |
| 29 | for x in range (width): |
| 30 | sys.stdout.write (''.join ([chr (x) for x in (pix[x + (g - skip) * width, y])])) |
| 31 |
Branches:
master
