#!/usr/bin/env python3 """iPhone-schermafbeeldingen klaarmaken voor de App Store. Per bestand in de invoermap: - de statusbalk bovenin (tijd, 5G, batterij, opname- en microfoonindicator) wordt overgeschilderd met de kleur van de kop van de app, zodat er geen tijd, netwerk of toestelinfo in staat; - het plaatje wordt op 1290 x 2796 gebracht (iPhone 6,9 inch, toegestaan door de App Store). Alleen de statusbalk wordt aangepast; de rest van het scherm blijft zoals het is. Gebruik: python tools/appstore-schermen.py Invoer: ORIGINELE iPhone-schermafbeeldingen (1179 x 2556 of 1290 x 2796, dezelfde beeldverhouding). Een verkleind plaatje (bijvoorbeeld uit een chat) wordt onscherp zodra het naar 1290 x 2796 groeit. Nodig: Pillow (pip install pillow). """ import sys, pathlib from PIL import Image DOEL = (1290, 2796) STATUSBALK = 0.055 # aandeel van de hoogte dat de statusbalk beslaat (iPhone met Dynamic Island) def verwerk(pad, uit): im = Image.open(pad).convert("RGB") b, h = im.size if abs(b / h - DOEL[0] / DOEL[1]) > 0.01: raise SystemExit(f"{pad.name}: beeldverhouding {b}x{h} past niet bij een iPhone-schermafbeelding") rand = int(h * STATUSBALK) kleur = im.getpixel((b // 2, rand + 4)) im.paste(kleur, (0, 0, b, rand)) im = im.resize(DOEL, Image.LANCZOS) im.save(uit / (pad.stem + ".png"), optimize=True) if __name__ == "__main__": inv, uit = pathlib.Path(sys.argv[1]), pathlib.Path(sys.argv[2]) uit.mkdir(parents=True, exist_ok=True) for f in sorted(inv.iterdir()): if f.suffix.lower() in (".png", ".jpg", ".jpeg"): verwerk(f, uit) print("klaar:", f.name)