NearIMG

2026-09-30

Why your HDR photo looks perfect on your phone and different everywhere you send it

Take a photo on a recent iPhone or Android phone and it can look genuinely striking — bright highlights, punchy color, real depth on your own screen. Send that exact file to a friend, post it in a group chat, or open it in a different app, and it can come back looking flat and dull, or in some cases oddly blown out, even though nobody touched a single pixel. Android's own developer documentation explains why: since Android 14, the file itself isn't one image. It's a normal JPEG with a second, hidden image — a “gain map” — stitched onto the end of it, and what you see depends entirely on whether the app opening it knows to read that second part.

What's actually inside the file

Google calls its version Ultra HDR; Apple calls its version Adaptive HDR. Both work the same way, and as of late 2024 both are built on the same underlying standard, ISO 21496-1. Android's developer docs for the format spell out the structure plainly: the file starts with a complete, ordinary SDR (standard dynamic range) JPEG, then a second image — the gain map — is appended afterward using the Multi-Picture Format, with metadata describing how much brighter each part of the photo should get. An app that understands gain maps reads both pieces and reconstructs the brighter, higher-contrast version. An app that doesn't — Android's docs are explicit about this — simply reads the file as a normal JPEG and stops, showing only that first, plainer SDR image. Nothing crashes and nothing corrupts; the two apps are just looking at two different amounts of the same file.

Part of the fileWhat it holds
Primary imageA complete, ordinary SDR JPEG — what every app can already read
Gain mapA second, smaller image whose pixels encode how much brighter each part of the primary image should get
Metadata (XMP)The math for combining the two — min/max brightness boost, gamma, and where to find the gain map inside the file
One file, three different results Nothing about the photo changes — only whether the app reads the gain map One .jpg file SDR image + gain map Reads gain map correctly bright, boosted photo Ignores gain map shows plain SDR image looks a little flatter Misreads gain map over-applies the boost overexposed, blown out nearIMG's Resize / Crop / Convert / Compress redraws the decoded photo and re-exports it as one plain SDR file
The same HDR photo can render three different ways depending on whether the receiving app reads the gain map, ignores it, or misapplies it. Re-encoding through nearIMG produces a single flat SDR file with no gain map to misread.

The two complaints this actually causes

  • “My photos look way too bright/blown out now.” 9to5Google reported in March 2024 that Ultra HDR photos on the Pixel 8, Pixel 8 Pro, Galaxy S24 series, and OnePlus 12 — opened in their native gallery apps as well as Instagram and Threads — showed extremely bright, blown-out highlights, and that Google buried a toggle in the Pixel camera's Advanced settings specifically to turn Ultra HDR capture off again.
  • “My photo looked amazing on my phone but dull everywhere else.” For years, Google's Ultra HDR and Apple's own gain-map format weren't compatible with each other, so a photo built for one ecosystem's gain-map reader would just fall back to its plainer base image on the other. Android Authority reported in October 2024 that Google and Apple had finally aligned on a shared encoding — ISO 21496-1 — with Android 15 writing both its own Ultra HDR metadata and the new shared standard, and Apple adding developer support for reading and writing it in iOS 18, iPadOS 18, and macOS 15 (announced at WWDC24 in June 2024). Before that alignment, an HDR photo simply didn't travel between an iPhone and an Android phone the way its owner saw it.

Both complaints come from the same root cause: the “real” look of the photo only exists when the gain map is read correctly. Skip it and you get the flatter base image. Misread it and you get an over-boosted, blown-out one.

What Resize, Crop, Convert, and Compress do to a photo like this

nearIMG decodes every photo through the browser's own image decoder, draws it onto a plain 2D canvas, and re-encodes it from there — the same pipeline for every tool. A standard 2D canvas doesn't carry a gain map forward; it only has the one flat image it was drawn with. So whichever tool you run — Resize to shrink it for a chat app, Crop to recompose it, Convert to change JPEG/PNG/WebP, or Compress to bring the file size down — the file that comes out the other end is one ordinary SDR image with no attached gain map to misread. It will look the same wherever it's opened next: not the extra-bright version some HDR-aware apps can build, but a single, predictable image instead of a photo that gambles on which of the three outcomes above the next app lands on.

What this doesn't do

  • It can't add HDR back in. There's no tone-mapping or gain-map-authoring tool here; once the file is flattened, it's flattened for good.
  • It can't fix a photo that's already washed out from the platform's own HDR-to-SDR conversion on upload. If a chat app or social platform already stripped the gain map badly before you ever touched the file, re-encoding a copy of that result won't recover detail that wasn't there.
  • It doesn't tell you which apps support gain maps. That changes by app and by version; the only thing under your control is whether the file you send still has one attached.

The short version

Recent iPhone and Android photos often carry a hidden second image — a gain map — that tells a supporting app how much brighter to render the photo. An app that reads it right shows the punchy version; one that ignores it shows a flatter base image; one that misreads it can blow the photo out, which is exactly what 9to5Google documented on Pixel and Galaxy phones in March 2024 before Google added an off switch. Google and Apple only agreed on a shared gain-map standard, ISO 21496-1, in late 2024, so older cross-platform shares could look wrong in either direction. Running the photo through Resize, Crop, Convert, or Compress re-encodes it as one plain SDR file with nothing left to misinterpret — trading the occasional extra brightness for a photo that looks the same everywhere it lands.

Sponsored
← NearIMG

This page shows ads only if you consent.