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.")