Uitrol 31-10-2026 12:23
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
#!/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 <invoermap> <uitvoermap>
|
||||
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)
|
||||
Reference in New Issue
Block a user