JPEG to HDR

Turn a plain JPEG into a real HDR JPEG

Not a filter, and not a relabel — Headroom builds an actual gain map from your JPEG and splices it into the file using the same container format real HDR photo tools use.

Convert a JPEGLocal-first processing · No account required

What "converting to HDR" actually means here

There's no such thing as making a JPEG's existing pixels more HDR after the fact with a filter — that just adjusts contrast within the same range. Real HDR conversion means computing genuinely new brightness data (how much extra light each pixel should represent on a capable display) and embedding it alongside the original as a proper gain map, which is exactly what this tool does.

Three modes, one underlying mechanism

Superwhite only touches pixels that are already close to blown-out highlights. Highlight HDR boosts everything above a threshold you control. Full HDR boosts the whole tonal range proportionally. All three build the same kind of file — the difference is which pixels get touched and how strongly, not the format underneath.

Questions people actually ask

What actually changes in the file?
Two things: a boosted primary JPEG (so the image looks brighter in any viewer, not only HDR-aware ones), and a genuine auxiliary gain-map image, spliced together with hdrgm XMP metadata and an MPF container — the same structure Ultra HDR and Adobe's Gain Map spec use. It's a real second image, not a metadata tag pretending the file is HDR.
Will the output still open normally in apps that don't support HDR?
Yes. The primary image is a completely ordinary JPEG on its own — any app or browser that's never heard of gain maps just displays that, correctly, with no visible sign anything unusual is bundled in.
Does converting a JPEG to PNG or WebP first change anything about this?
Not for this — the encoder decodes whatever image you give it (JPEG, PNG, WebP, or AVIF) into raw pixels before building the gain map, so the source container format doesn't affect the result. If you specifically need a different output container after adding the boost, Convert can re-encode the exported HDR JPEG's primary separately.
How do I know the conversion actually worked?
The download link doesn't unlock until the export round-trips successfully — the resulting file gets decoded back apart immediately after being built, and both the primary image and the embedded gain map are re-checked against expected dimensions. A silently broken export isn't possible; you get a real error instead.