import numpy as np
from PIL import Image
from skiss_fourier_codec import SkissEncoder, SkissDecoder

# Load any image
img = np.array(Image.open("photo.png").convert("RGB"))
#2752×1536×3

# Encode (compress to skiss residue)
enc = SkissEncoder(epsilon=0.05)   # Retain 95% of spectral energy
theta = enc.encode(img)
enc.save("photo_skiss.npz")

# Decode (generate from residue on demand)
theta = SkissEncoder.load_theta("photo_skiss.npz")
dec = SkissDecoder(theta)

# Reconstruct full image
rec_img = dec.reconstruct()

# Generate a zoomed 4K patch from a 512×512 source without resizing artifacts
patch = dec.reconstruct_patch(x_min=100, x_max=400, y_min=100, y_max=400,
                              res_x=2752, res_y=1536)
