#!/usr/bin/env python3 import sys import os from PIL import Image def main(): if len(sys.argv) != 3: print("Usage: %s " % sys.argv[0]) sys.exit(-1) img = Image.open(sys.argv[1]).convert('RGB') width, height = img.size print("Size: %d x %d = %d bytes" % (width, height, width * height * 2)) file_name = os.path.basename(sys.argv[2]) variable_name = '_'.join(file_name.split('.')[:-1]) variable_name = variable_name.upper() output_file = open(sys.argv[2], 'w') output_file.write("use st7735::bitmaps::ColorBitmap;\n\n") output_file.write("const %s_PX: [u16; %d] = [\n" % (variable_name, width * height)) for y in range(0, height): output_file.write("\t") for x in range(0, width): r, g, b = img.getpixel((x, y)) packed_color = ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3) output_file.write("0x%x, " % packed_color) output_file.write("\n") output_file.write("];\n\n") output_file.write("pub const %s: ColorBitmap = ColorBitmap {\n" % variable_name) output_file.write("\twidth: %d,\n" % width) output_file.write("\theight: %d,\n" % height) output_file.write("pixels: &%s_PX,\n" % variable_name) output_file.write("};\n") output_file.close() if __name__ == '__main__': main()