93f56186b9
Skia's Image.MakeImageFromEncoded applies the embedded JPEG's EXIF orientation itself. A Panasonic RW2 preview stored 1920x1280 with orientation 8 therefore decodes as 1280x1920 already — the frame the camera meant. previewGrid turned it a second time by its own per-orientation canvas rotation, so a portrait frame's reference grid met the develop a quarter turn out, previewMatch rejected the fit as folded and the RW2 opened with no tone curve at all (~9-13 levels off across the shadows). Drop the rotation and read the crop rectangle and aspect straight from bmp.width()/bmp.height(), the display dimensions Skia hands back. Panasonic RW2 now fits a real curve (dRGB 2.3,-0.0,0.4, was -9.1,-10.3, -13.2). The five bodies that were already stable — ORF, NEF, DNG, both RAF — measure exactly as before. getJpegOrientation had no other caller and goes with it; raw-orf-check drops its own byte-scanning preview finder, which crashed on DNG and RAF, and reads the reference through the shipped extractEmbeddedJpeg.