diff --git a/color_convert.py b/color_convert.py index 13924da..b457c68 100644 --- a/color_convert.py +++ b/color_convert.py @@ -31,62 +31,64 @@ class color_format: b5 = (b >> 3) & 31 return (r5 << 11) | (g5 << 5) | (b5 << 0) + def axxx4444(r, g, b, a): + a4 = (a >> 4) & 15 + return (a4 << 12) + def from_string(s): return dict([ ("gbgr1555", color_format.gbgr1555), ("argb4444", color_format.argb4444), ("argb1555", color_format.argb1555), ("rgb565", color_format.rgb565), + ("axxx4444", color_format.axxx4444), ])[s] -in_file = sys.argv[1] -format = sys.argv[2] -out_file = sys.argv[3] - -palette = None - -with Image.open(in_file) as im: - width, height = im.size - if not im.palette: - pixels = list(im.convert("RGBA").getdata()) - else: - pixels = list(im.convert("P").getdata()) - palette = list(im.palette.colors) - -has_alpha = False -convert = color_format.from_string(format) - -def convert_colors(f, colors): +def convert_colors(f, convert, colors): for color in colors: value = convert(*color) f.write(struct.pack("