Eerste commit voor Helvoirt Gevelreiniging
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
# /// script
|
||||
# requires-python = ">=3.10"
|
||||
# dependencies = ["pillow"]
|
||||
# ///
|
||||
"""Genereer downscaled WebP-varianten voor responsive srcset.
|
||||
Usage: uv run --native-tls scripts/img-variants.py <input.webp> <w1,w2,...> [quality]
|
||||
Schrijft <stem>-<w>.webp voor elke breedte kleiner dan het origineel."""
|
||||
import os
|
||||
import sys
|
||||
from PIL import Image
|
||||
|
||||
inp = sys.argv[1]
|
||||
widths = [int(w) for w in sys.argv[2].split(",")]
|
||||
quality = int(sys.argv[3]) if len(sys.argv) > 3 else 80
|
||||
|
||||
img = Image.open(inp)
|
||||
ow, oh = img.size
|
||||
stem, ext = os.path.splitext(inp)
|
||||
|
||||
for w in widths:
|
||||
if w >= ow:
|
||||
print(f"skip {w} (>= origineel {ow})")
|
||||
continue
|
||||
h = round(oh * w / ow)
|
||||
resized = img.resize((w, h), Image.LANCZOS)
|
||||
out = f"{stem}-{w}.webp"
|
||||
resized.save(out, "WEBP", quality=quality, method=6)
|
||||
print(f"saved {out} ({w}x{h}, {os.path.getsize(out) // 1024} KB)")
|
||||
Reference in New Issue
Block a user