#!/usr/bin/python3 """ Extract a GBA-compatible palette from a PNG. """ import sys import os.path import png PAL_PRELUDE = 'JASC-PAL\n0100\n' def extract_palette(path): r = png.Reader(path) r.read() root, _ = os.path.splitext(path) out_path = root + '.pal' with open(out_path, 'w', newline='\r\n') as f: f.write(PAL_PRELUDE) colors = r.palette() if len(colors) < 16: colors += [(0, 0, 0) for _ in range(16-len(colors))] f.write(f'{len(colors)}\n') for r, g, b in colors: f.write(f'{r} {g} {b}\n') if __name__ == '__main__': extract_palette(*sys.argv[1:])