An iPhone-first tool that doesn't read HEIC is unusable. You shoot a target photo with your phone, and what comes out is a HEIC — not a JPEG. Without native support, you'd have to convert each photo manually before importing, which breaks the darkroom workflow where you just want to set the iPhone next to the target and press.
Calibration Flow handles HEIC with no gesture on your part. You import, it works. RAW is a different story: the app knows how to recognize the files (Canon, Nikon, Sony, Adobe DNG…) but doesn't yet know how to decode them. This page documents what goes through today, what doesn't, and how to work around it.
#What happens on import
You drag an image into Calibration Flow, or you click "Import". The app looks at the first bytes of the file to identify the format — not the extension, which can lie. A JPEG renamed .png will be correctly identified as JPEG.
Depending on the detected format, the app takes one of these three paths:
iPhone HEIC (
.heic, .heif): the app loads a dedicated decoding lib and shows you the image within the second. On Safari macOS and iOS, which can read HEIC natively, it's even faster. If the main lib fails (rare), a third fallback path activates automatically. You see none of this gymnastics — you see your image, that's all.
Standard formats (JPEG, PNG, WebP, GIF, AVIF): native browser decoding, instant.
RAW (DNG, CR3, NEF, ARW, RAF, ORF, RW2, SRW, PEF): the app recognizes the format but answers with a clear error message indicating that RAW decoding isn't integrated yet. It's not a bug — it's a feature on hold. A RAW decoding library still has to be added to the app.
EXIF orientation is handled for all formats read successfully. A photo shot on an iPhone in portrait mode will display the right way up, with no manual rotation on your part.
#Why it matters
For the target scanned with an iPhone. Native HEIC lets you shoot the photo of your dried target, send it into Calibration Flow, and measure immediately. No intermediate conversion step, so no risk of alteration from re-compression. Over a new user's first twenty calibrations, this is typically what makes the experience smooth or frustrating.
For standard final images. High-quality JPEG from Lightroom, PNG from a web export, 8-bit TIFF from Photoshop — it all goes through. You prepare your image in your usual workflow, you export to a common format, you import into Calibration Flow to apply the corrective curve and generate the printable negative.
For anyone working in batches from the iPhone. If your workflow is "iPhone → AirDrop → Calibration Flow", HEIC is what makes it possible without conversion. If you had to convert each photo to JPEG via the iOS Photos app before every calibration, you'd lose five minutes a session on pointless friction.
#When it's not enough
You want to import a RAW for your final image. Not possible today. To work around it, two options:
- In your RAW development software (Lightroom, Capture One, Darktable), export to maximum-quality JPEG (95-100%) or to 8-bit sRGB TIFF, then import that file into Calibration Flow. For a calibration target, that's amply sufficient.
- For the final image destined for printing, you can apply the Calibration Flow curve directly in Photoshop (by loading the exported
), which lets you keep your full RAW workflow all the way to the final 16-bit TIFF..acv
You work in 16-bit TIFF. The app works in 8 bits per channel internally. A 16-bit TIFF imported would be converted to 8 bits before processing. For target calibration, that's inconsequential — density measurement doesn't need the dynamic range of 16 bits. For very smooth final images (gradient skies, skin), work in Photoshop in 16 bits and apply the
.acv curve exported by Calibration Flow.
You want to preserve a source ICC profile. The app doesn't handle ICC. If your source file has an Adobe RGB or ProPhoto tag, the app treats it as sRGB without warning. Convert to sRGB in your original software if strict color fidelity matters for your project.
#Key facts
| Format | Status |
|---|---|
| HEIC, HEIF (iPhone) | Native reading, ready to use |
| JPEG | Native reading |
| PNG | Native reading |
| WebP | Native reading |
| AVIF | Native reading (browser-dependent) |
| GIF | Native reading |
| TIFF | Detected, reading not guaranteed (browser-dependent) |
| RAW (DNG, CR3, NEF, ARW…) | Detected but not decoded yet — explicit error message |
| 16 bits per channel | Converted to 8 bits on import |
| ICC profile | Ignored (everything treated as sRGB) |
| EXIF orientation | Applied automatically |
#The test
Shoot a target photo with your iPhone (HEIC output by default since iOS 11). Send it to Calibration Flow by AirDrop or direct drag-and-drop from Photos. The image should display in the app within the second after import, with the right orientation, with no intermediate conversion step. Now try to import a RAW file (a DNG from Lightroom, for instance). The app should show a clear error message indicating that RAW isn't supported yet. If it crashes instead of showing a readable message, report it to
support@picturale.app.
