diff --git a/firmware/png2bi.py b/firmware/png2bi.py new file mode 100644 index 0000000..9cd6c06 --- /dev/null +++ b/firmware/png2bi.py @@ -0,0 +1,91 @@ +from PIL import Image as img +import sys + +if len(sys.argv) < 2: + print('Need image path as filename') + exit(0) + +fname = sys.argv[1] + +im = img.open(fname, 'r') + +raw_pixels = list(im.getdata()) + +width = im.width + +x = 0 + +_pix = [] + +pixels = [] + +for i in raw_pixels: + _pix.append(i) + x+=1 + if x == width: + x = 0 + pixels.append(_pix) + _pix = [] + +for i in range(0, len(pixels)): + for j in range(0, len(pixels[i])): + if pixels[i][j] < 50: + pixels[i][j] = "0" + else: + pixels[i][j] = "1" + +true_pixels = [] + +for i in pixels: + st = '' + for j in i: + st += j + true_pixels.append(st) + +final_pixels = [] + + +_bdata = '' +mod_length = len(i) % 8 +full_length = (len(i) / 8) - mod_length + +for iterator in range(0, len(true_pixels)): + + it = 0 + counter = 0 + do = True + _bdata = 'B' + + while do: + if (counter*8+it) < len(i): + _bdata += true_pixels[iterator][counter*8 + it] + + elif it != 0: + _bdata += '0' + + else: + do = False + + it+=1 + + if (it == 8) and (counter*8+it) < len(i): + it = 0 + _bdata+=', B' + counter+=1 + + + elif (it == 8): + it = 0 + if iterator != len(true_pixels)-1: + _bdata+=',' + counter+=1 + final_pixels.append(_bdata) + +print("static const unsigned char PROGMEM var_name[] = {") +for i in final_pixels: + print(" " + i) +print("};") + + + +