#!/usr/bin/env python3 from subprocess import run from bdfparser import Font from PIL import Image font = Font("civic-segments.bdf") print( f"This font's global size is " f"{font.headers['fbbx']} x {font.headers['fbby']} (pixel), " f"it contains {len(font)} glyphs." ) chars_to_export = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] for char_str in chars_to_export: char = font.glyph(char_str) bitmap = char.draw() im = Image.frombytes( "RGBA", (bitmap.width(), bitmap.height()), bitmap.tobytes( "RGBA", bytesdict={ 0: b"\x00\x00\x00\x00", # transparent background 1: b"\xff\xff\xff\xff", # white glyph }, ), ) output_path = f"../resources/{char_str}.png" im.save(output_path, "PNG") run( [ "zopflipng", "-y", "--iterations=500", "--filters=01234mepb", "--lossy_8bit", "--lossy_transparent", output_path, output_path, ] )