#!/usr/bin/python # This file is part of Espruino, a JavaScript interpreter for Microcontrollers # # Copyright (C) 2013 Gordon Williams # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # # ---------------------------------------------------------------------------------------- # Bitmap font creator - not actually used yet though # ---------------------------------------------------------------------------------------- import Image import ImageFont, ImageDraw import textwrap font = ImageFont.truetype("/usr/share/fonts/truetype/helvetica/Helvetica.ttf", 10) fontbitmap = [] fontoffset = [] for charNum in range(0,127): char = chr(charNum) image = Image.new('RGB', (20, 20)) draw = ImageDraw.Draw(image) draw.text((0,0), char, font=font) width = font.getsize(char)[0] pixels = image.load() print(width) bits = 0 for x in range(0,width): bits = 0 for y in range(0,8): bit = pixels[x,y+1][0] > 127 bits = (bits<<1) | bit fontbitmap.append(str(bits)) # insert a space if we need one if bits!=0: fontbitmap.append(0) fontoffset.append(str(len(fontbitmap))) for x in fontbitmap: s = "|" bits = int(x) for y in range(0,8): if bits&1: s = s+"#" else: s = s+" " bits = bits>>1 print(s+"|") print("unsigned char fontBitmap["+str(len(fontbitmap))+"] = {") print("\n".join(textwrap.wrap(",".join(fontbitmap)))) print("};") print("unsigned short fontOffsets["+str(len(fontoffset))+"] = {") print("\n".join(textwrap.wrap(",".join(fontoffset)))) print("};") exit(0)