project_power-bank/Code/png2bi.py
2020-01-11 17:55:15 +00:00

92 lines
1.2 KiB
Python

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("};")