Learn / Practical Guides

How do Instagram, X, and other apps handle HDR photos?

Upload an HDR photo to social media and the results are inconsistent by design. Here's what actually happens at each step, and why.

You export a genuinely boosted HDR photo, post it to a social platform, and have no real way to know whether what other people see matches what you made. That uncertainty isn't you doing something wrong — it's a structural consequence of how most platforms handle uploaded images, and it's worth understanding why before assuming either "it definitely worked" or "it definitely didn't."

Most platforms re-encode everything you upload

Very few platforms store your file byte-for-byte. Almost all of them decode what you upload and re-encode it through their own pipeline — resizing for their CDN, recompressing for bandwidth, sometimes converting formats entirely. A gain map is auxiliary data riding alongside the primary image; if a platform's re-encoding step doesn't specifically know to preserve it, it gets dropped as an unrecognized extra, not maliciously stripped, just not carried through a pipeline that was never built to expect it.

Where preservation is more likely

Platforms and apps built tightly around Android and Google's photo ecosystem are more likely to actually understand and preserve Ultra-HDR-style gain maps, because that format is already native to how Android captures and shares photos internally — Google Photos being the clearest example. General-purpose upload pipelines that treat every image as interchangeable JPEG bytes are far more likely to strip auxiliary data as part of routine optimization, since preserving it adds complexity for a feature most of their users aren't asking about.

This changes over time, isn't always documented publicly by the platforms themselves, and can vary by upload path (a native app vs. a web upload vs. an API) even on the same service. Treat any specific claim about a specific platform's current behavior as something to verify yourself, not a permanent fact.

What actually happens if the gain map gets stripped

Nothing breaks. This is the entire point of building HDR photos as a gain map bundled with a normal SDR primary: if the auxiliary data gets dropped somewhere in a pipeline, viewers just see the ordinary SDR image underneath, correctly exposed, not a corrupted or obviously-wrong file. You lose the boost, not the photo.

How to actually know, instead of guessing

Download the file back from the platform — not a screenshot, not an in-app preview, the actual file — and run it through Inspect. It reads the real bytes and tells you plainly whether the gain map and its metadata are still there. That's the only way to get a real answer for a specific platform, upload method, and moment in time, rather than relying on secondhand claims that may already be outdated.

Questions people actually ask

Will my gain map definitely survive an upload?
There's no universal answer — it genuinely depends on the specific platform and can change without notice as platforms update their processing pipelines. Treat any given answer as a snapshot, not a permanent guarantee, and verify with Inspect on the actual downloaded file if it matters.
Does Headroom strip anything from my file?
No — Headroom never uploads your image anywhere, so there's nothing for it to strip in the first place. Every step runs locally in your browser. What happens after you export and hand the file to a different platform is entirely that platform's pipeline, outside Headroom's control.
Is there a reliable way to check if a specific upload preserved the gain map?
Download the file back from the platform (not just view it in-app) and run it through Inspect. That reads the actual bytes and tells you directly whether hdrgm metadata and an auxiliary gain-map image are still present — a real answer instead of a guess based on how the preview looked.