#!/usr/bin/env python3 """Test-Helfer: PNG <-> rohes RGB-Byte-Array (nur für den Interop-Test).""" import os import sys from PIL import Image if sys.argv[1] == "mkcarrier": # mkcarrier -> Rausch-Trägerbild w, h = int(sys.argv[3]), int(sys.argv[4]) img = Image.frombytes("RGB", (w, h), os.urandom(w * h * 3)) img.save(sys.argv[2], "PNG") print("ok") elif sys.argv[1] == "png2rgb": # png2rgb -> stdout: "W H" img = Image.open(sys.argv[2]).convert("RGB") w, h = img.size with open(sys.argv[3], "wb") as fh: fh.write(bytes([v for px in img.getdata() for v in px])) print(w, h) elif sys.argv[1] == "rgb2png": # rgb2png w, h = int(sys.argv[3]), int(sys.argv[4]) data = open(sys.argv[2], "rb").read() img = Image.new("RGB", (w, h)) img.putdata([tuple(data[i:i + 3]) for i in range(0, len(data), 3)]) img.save(sys.argv[5], "PNG") print("ok")