from PIL import Image
import sys

nazev = sys.argv[1]
nazev_prom = nazev.replace('.','_')
poz_tecky = nazev.find('.')
if poz_tecky<0:
  nazev_c = nazev+'.c'
else:
  nazev_c = nazev[:poz_tecky]+'.c'

try:
  obr = Image.open(nazev)
  pix = obr.load()
except Exception as e:
  print(e)

width, height = obr.size

f_out = open(nazev_c, "w")
f_out.write("int "+nazev_prom+"_height = "+str(height)+";\n")
f_out.write("int "+nazev_prom+"_width = "+str(width)+";\n")
f_out.write("unsigned short int "+nazev_prom+"[] = {\n")
pix_cnt=0
for i in range(height):
  for j in range(width):
    pixel = pix[j,i]
    lcd_pixel = ((pixel[0]>>3)<<11) | ((pixel[1]>>2)<<5) | (pixel[2]>>3)
    if i==height-1 and j == width-1:
      f_out.write(str(lcd_pixel)+'};\n')
    else:
      f_out.write(str(lcd_pixel)+',')
      pix_cnt+=1
      if j==width-1:
        f_out.write('\n\n')
      if pix_cnt>=20:
        pix_cnt=0
        f_out.write('\n')
f_out.close()
    




