#!/usr/bin/env python3
from LVGLImage import LVGLImage
import argparse
import logging
import os

logging.basicConfig(level=logging.INFO)

parser = argparse.ArgumentParser(description="LVGL Binary Image Viewer")
parser.add_argument("file", help="the .bin image file")

args = parser.parse_args()

name, ext = os.path.splitext(args.file)
if ext != ".bin":
    raise ValueError("Only support LVGL .bin image file")

output = name + ".png"
img = LVGLImage().from_bin(args.file)
img.to_png(output)
logging.info(f"convert {args.file} to {output}")

if os.name == "posix":
    os.system(f"open {output}")
else:
    try:
        from PIL import Image
    except ImportError:
        raise ImportError("Need pillow package, do `pip3 install pillow`")
    image = Image.open(output)
    image.show(title=output)