Gain Map Generator

Generate a real gain map from any photo

A gain map is a per-pixel record of how much brighter each part of an image should get on an HDR display. This computes a genuine one from your actual photo — and shows it to you directly.

Generate a gain mapLocal-first processing · No account required

A real computation, not a placeholder

The gain map you see here is the literal one that gets embedded in the exported file — the same downsampled preview canvas drives both the visible boosted result and the raw gain-map visualization, so what you see genuinely matches what ships.

Where a gain map actually gets used

Ultra HDR (Android's camera and Google Photos), Adobe's Gain Map specification, and Apple's HDR photo pipeline are all variations on this same underlying technique. The gain map this tool generates is spliced into a real JPEG using the same hdrgm XMP metadata and MPF container structure those formats use — not a proprietary or simplified approximation.

Questions people actually ask

What exactly is a gain map, for someone who's never heard the term?
A second, smaller grayscale image bundled into an HDR photo file, where each pixel encodes how much brighter the corresponding pixel in the main image should get on a capable display. White means full boost, black means none. See What Is a Gain Map? for the full explanation.
Can I see the gain map itself, not just the boosted photo?
Yes — toggle to "Gain map" in the live preview and you'll see the literal grayscale boost mask computed from your actual image, before it's spliced into the final file.
How is the gain map actually computed?
For each pixel, we compare its current SDR brightness to its target HDR brightness (based on your chosen mode and settings), and express that ratio as a log2 value — the same math real gain-map encoders use, not an approximation.
Is the gain map computed against the original image or the boosted one?
The boosted one that actually ships as the primary — deliberately. If the gain map were computed against the unboosted original while the shipped primary already carries a visible boost, an HDR-capable viewer would apply that boost twice and blow out the highlights. Recomputing against the real shipped primary keeps the math self-consistent.