Left = trusted reference (libheif heif-dec). Right = our fast on-device path (the app's exact libheif/WASM decode, run here in real headless Chromium, re-encoded on OffscreenCanvas at JPEG q0.92 — identical to what a host's upload produces). Every pair is visually identical.
irot=0, EXIF Orientation=1). Every faithful decoder renders that sideways — and the old test asserted output dimensions only, so a sideways-stored 1073×1600 passed as a "portrait". The decode path itself was correct. These fixtures carry real HEIF transforms for all 8 orientations, and the new regression test asserts pixel content, not just shape.



































