#!/usr/bin/env python2 from PIL import Image def value(type, name, val): print "const %s %s = %s;" % (type, name, val) def array(type, name, data): data = list(data) print "const %s %s[] = {" % (type, name) print " " + ", ".join("0x%02X" % int(x) for x in data) print "}; // " + str(len(data)) + " values\n" def write_image(name, file): img = Image.open(file) data = img.getdata() byte = 0 bit = 1 arr = [] for y in range(0, img.size[1]): for x in range(0, img.size[0]): d = data[y * img.size[0] + x] if d[0] > 128: byte |= bit bit <<= 1 if bit == 0x10000: arr.append(byte) bit = 1 byte = 0 array("uint16_t", name, arr) value("uint16_t", name + "_wpl", img.size[0] / 16) write_image("bmp_playfield", "playfield_graphic.png")