File size: 834 Bytes
3ce1a40 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | """Rebuild lossless QOI runtime copies from the preserved original artwork (requires Pillow)."""
from pathlib import Path
from PIL import Image
import hashlib
import json
root=Path(__file__).resolve().parents[1]
original=root/"assets/snapkitty"
manifest=json.loads((original/"runtime-manifest.json").read_text())
for entry in manifest:
src=root/entry["source"]
if hashlib.sha256(src.read_bytes()).hexdigest()!=entry["sha256"]:
raise ValueError("Source changed: "+str(src))
image=Image.open(src).convert("RGBA")
output=root/entry["runtime"]
output.parent.mkdir(parents=True,exist_ok=True)
image.save(output,format="QOI")
with Image.open(output) as check:
assert image.tobytes()==check.convert("RGBA").tobytes()
print("Four pixel-identical QOI textures prepared. Original images preserved.")
|