#!/usr/bin/env python3 """PCC-Decoder fuer Kellogg's Tony and Friends -- nutzt Pillows PCX-Decoder. .PCC ist stinknormales PCX v5 (8bpp, RLE, eigene 256-Farb-Palette am Dateiende) -- bestaetigt gegen https://github.com/movAX13h/tony-and-friends-in-kelloggs-land. REGRESSIONS-WARNUNG (gefunden 2026-07-22 abends): Commit 62af15e hatte hier schon mal korrekt auf ImageMagick (`convert pcx:...`) umgestellt, nachdem ZWEI eigene Hand-RLE-Parser nachweislich falsche Pixel lieferten (Bild verschoben/dupliziert bei Vollbild-Screens wie KARTE.PCC/KELLOGGS.PCC). Der naechste Commit (3410a53, eigentlich nur fuer BOB/ICO/MAP gedacht) hat diese Datei aber versehentlich durch eine AELTERE Version mit dem kaputten Hand-Decoder ersetzt -- die bereits committeten PNGs in png_out/ waren davon zum Glueck nicht betroffen (die sind noch von der guten ImageMagick-Version), aber ein Rerun dieses Skripts haette wieder kaputte Bilder erzeugt. Fix jetzt: Pillow statt Hand-RLE oder externem `convert`-Subprocess -- kein Format- Parsing mehr in eigenem Code, nutzt game.formats.load_pcc(). Nutzung: python3 pcc_to_png.py """ import sys, os sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from game.formats import load_pcc def main(): inp, outp = sys.argv[1], sys.argv[2] with open(inp, 'rb') as f: data = f.read() width, height, indices, palette = load_pcc(data) print(f"{inp}: {width}x{height}") from PIL import Image img = Image.new('P', (width, height)) img.putpalette([c for rgb in palette for c in rgb]) img.putdata(indices) img.convert('RGB').save(outp) print(f"-> {outp}") if __name__ == '__main__': main()