16 lines
690 B
Python
16 lines
690 B
Python
"""Build lightweight display assets while retaining original demo PNGs for rollback."""
|
|
from pathlib import Path
|
|
from PIL import Image
|
|
|
|
root = Path(__file__).resolve().parents[2] / "public" / "demo" / "images"
|
|
original_bytes = optimized_bytes = 0
|
|
for source in sorted(root.glob("*.png")):
|
|
with Image.open(source) as image:
|
|
image = image.convert("RGB")
|
|
image.thumbnail((1024, 1024), Image.Resampling.LANCZOS)
|
|
target = source.with_suffix(".webp")
|
|
image.save(target, "WEBP", quality=83, method=6)
|
|
original_bytes += source.stat().st_size
|
|
optimized_bytes += target.stat().st_size
|
|
print(f"Demo images: {original_bytes:,} -> {optimized_bytes:,} bytes")
|