HDR
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
Radiance HDR Preview.
At a glance
| Original creator | Gregory Ward Larson, for the Radiance rendering system |
| Purpose | Radiance HDR (RGBE): high-dynamic-range images, one byte each for red, green and blue plus a shared exponent byte. |
| Extensions | .hdr |
| Poka parser | poka-hdr |
| Viewer | poka-image-with-meta-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B2 Broad (see Breadth tiers) |
How much Poka reads
B2 Broad. The common content of the current and the common older versions is decoded. Some named features or versions are not, and are listed.
Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-16: parsers/poka-hdr/src/main.rs (image HdrDecoder, Reinhard tone map, MAX_DECODED 24 MiB), src/envi.rs, and the image 0.25.10 HDR decoder source. tests/samples.rs only tests the ENVI path (2 ENVI corpus files) and that quarry_01_1k.hdr is not taken for ENVI. The Radiance render path is covered only by synthetic unit tests, not by a corpus render test. Tier is for Radiance RGBE pictures; the ENVI header path (a text sidecar with no pixels, B4 in kind) is a separate format that shares the extension.
What Poka does not read
- pictures whose floats exceed 24 MiB (larger than about 2048 x 1024) are reported, not drawn, which covers most large environment maps
- XYZE-format Radiance pictures (FORMAT=32-bit_rle_xyze) are not converted
- header variables (EXPOSURE, COLORCORR, PRIMARIES, VIEW, SOFTWARE) are not shown or applied
- HDR range is lost: a fixed Reinhard tone map to 8-bit is shown
- ENVI .hdr headers describe the raster only; the .img/.dat pixels are never read
Background
In Poka, .hdr is two formats. A Radiance picture is decoded with the image crate, tone-mapped to 8 bits and shown as a PNG; one whose decoded floats would exceed 24 MiB is reported, not drawn, which is the case for most large environment maps. A .hdr that starts with the line ENVI is the text header of a remote-sensing raster, and Poka describes that header instead.
Versions
| Version | Identifier | Poka | Note |
|---|---|---|---|
| Radiance RGBE picture | #?RADIANCE |
Partly read | Drawn when the decoded image fits 24 MiB (MAX_DECODED in main.rs); reported otherwise. |
Derived and related formats
- ENVI header (
.hdr): A different format with the same extension; poka-hdr tells them apart by the first line.
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- image (used; MIT OR Apache-2.0; Rust)
- png (used; MIT OR Apache-2.0; Rust)
- oxideav-hdr (candidate; MIT; Rust; https://github.com/OxideAV/oxideav-hdr) — Pure-Rust Radiance RGBE (.hdr/.pic) decoder and encoder; very new (0.0.6, October 2026)
- rgbe (candidate; MIT OR Apache-2.0; Rust; https://github.com/george-steel/rgbe-rs) — Loads RGBE HDR textures; 0.0.2 (August 2025), early stage
- radiant (candidate; WTFPL; Rust; https://github.com/iwikal/radiant) — Radiance HDR loader; last release 0.3.0 (April 2021)
- hdrldr (candidate; WTFPL; Rust; https://github.com/TechPriest/hdrldr) — Radiance HDR loader; last release 0.1.2 (May 2019), likely unmaintained
- stb_image (candidate; MIT OR Unlicense (public domain); C; https://github.com/nothings/stb) — Repo lists HDR among supported formats; 'Radiance' not stated on the page I read
Sources
- https://en.wikipedia.org/wiki/RGBE_image_format
- parsers/poka-hdr/src/main.rs
- parsers/poka-hdr/src/lib.rs