Proof
No visual proof cases have been published for this package yet. The registry summary below describes what the compat layer implements.expo-image-manipulator
the real package JS runs over an ExpoImageManipulator native seam that follows ios/ImageManipulatorModule.swift: manipulate takes a url or an image ref, the Context chains resize/rotate/flip/crop/reset onto one render task, and Image.saveAsync encodes and writes Caches/ImageManipulator/<UUID>.<ext>. Pixels go through OffscreenCanvas with the transformers sizing rules (resize rounds up at scale 1, rotate floors the rotated bounds, crop rejects out-of-range rects and clips the integral rect). iOS has no extent, so upstream skips it as on device.93%
API coverageWorking (7)
manipulateAsync and ImageManipulator.manipulate over datafile and http urls and expo-image refsuseImageManipulatorContext resize/rotate/flip/crop/reset/renderAsyncImage width/height/saveAsync with jpeg/png/webpcompress and base64native exception codes and messages
Missing
ph:// and assets-library:// photo library sources reject as not found, decoding uses the browser codecs (webp output depends on the browser encoder), and EXIF orientation is applied at decode again after reset