Wat is het HDR-bestandsformaat?
Het .hdr-bestand is een Radiance HDR (High Dynamic Range) rasterafbeelding, ontwikkeld door Greg Ward bij het Lawrence Berkeley National Laboratory als onderdeel van het Radiance-lichtsimulatiesysteem in de late jaren 80. Het formaat werd oorspronkelijk opgeslagen met de .pic extensie voordat .hdr de standaard werd.
Elke pixel is gecodeerd met RGBE - drie 8-bit mantissewaarden voor de rode, groene en blauwe kanalen, plus een enkele gedeelde 8-bit exponent. Dit verpakt een volledige floating-point HDR-pixel in slechts 4 bytes, wat een dynamisch bereik vertegenwoordigt van ongeveer 76 ordes van grootte (~10⁻³⁸ tot 10³⁸). Het nadeel is dat alle drie de kanalen één exponent delen, waardoor de precisie per kanaal lager is dan in formaten zoals OpenEXR, dat echte 16- of 32-bit floats per kanaal opslaat en meerdere lagen ondersteunt.
Het bestand begint met een ASCII-header die de signatuur #?RADIANCE bevat (sommige tools schrijven in plaats daarvan #?RGBE - beide zijn geldig). Na het blok met key=value variabelen en een resolutieregel, worden de pixelgegevens opgeslagen als run-length encoded (RLE) scanlines. Een alternatieve luminantie-codering wordt ook ondersteund: door het FORMAT headerveld in te stellen op 32-bit_rle_xyze wordt overgeschakeld van RGB naar de CIE XYZ-kleurruimte.
.hdr-bestanden worden veel gebruikt voor HDRI-omgevingskaarten in 3D-rendering en game-engines, waar het hoge dynamische bereik nauwkeurige op afbeeldingen gebaseerde verlichting (image-based lighting) mogelijk maakt. Ze worden ondersteund door Blender, GIMP, Adobe Photoshop en de meeste real-time rendering pipelines. Voor productie-VFX-werk dat float-precisie per kanaal en ondersteuning voor meerdere lagen vereist, is OpenEXR grotendeels de industriestandaard geworden.
Beveiliging & veiligheid
RISICO: LOWEen Radiance .hdr is een passieve afbeelding - geen scripts, macro's of uitvoerbare inhoud - dus het bestand zelf is geen vector voor malware. De enige praktische waarschuwingen zijn grote bestandsgroottes voor HDRI-kaarten met een hoge resolutie en de zeldzame bug in een image-library parser; houd uw editor up-to-date. Vermijd dubieuze „gratis HDR-converter”-sites die adware bundelen - GIMP, Krita, Blender en Photopea voorzien gratis in de behoefte.
Formaatdetails
in een notendop- Analog Devices / Mentor SPICE .hdr (headergegevens) - Sommige EDA- en datatools schrijven een platte tekst .hdr header/metadata sidecar - niet gerelateerd aan beeldvorming.
- ENVI / remote-sensing .hdr header - ENVI-rasterheaders gebruiken .hdr als een tekst-sidecar die een bijbehorende ruwe afbeelding beschrijft, geen Radiance-afbeelding.
- Game engine / installatie '.hdr' assets - Af en toe noemt een engine een verpakte HDR-cubemap of een generiek headerbestand .hdr.
Programma's die HDR-bestanden openen
Technische details
diepe specificaties| Coderingsschema | RGBE - 8-bit mantisse per R, G, B kanaal plus één gedeelde 8-bit exponent; verpakt een HDR-pixel in exact 4 bytes |
| Dynamisch bereik | ~76 ordes van grootte (~10⁻³⁸ tot 10³⁸); equivalent aan ongeveer 25+ fotografische stops |
| Bestandssignatuur | ASCII `#?RADIANCE` gevolgd door een newline (0x0A) op byte-offset 0; `#?RGBE` op offset 0 is eveneens geldig en wordt veel geproduceerd |
| Compressie | Adaptieve run-length encoding (RLE) van scanlines; platte (ongecomprimeerde) scanline-opslag is ook toegestaan volgens de specificatie |
| Header-formaat | Plat ASCII key=value variabelenblok (FORMAT, EXPOSURE, COLORCORR, PRIMARIES, SOFTWARE, etc.) afgesloten door een lege regel |
| Resolutieregel | Codeert breedte, hoogte en oriëntatie als bijv. `-Y 512 +X 1024`; alle vier de flip/rotate-combinaties worden ondersteund |
| Kleurcoderingen | `32-bit_rle_rgbe` (lineair RGB, standaard) en `32-bit_rle_xyze` (CIE XYZ luminantievariant), geselecteerd via het `FORMAT` headerveld |
| MIME-type | `image/vnd.radiance` (IANA geregistreerd); `image/x-hdr` is een veelgebruikt informeel alternatief |
| Byte-volgorde | Endian-neutraal; pixelgegevens bestaan uit individuele bytes die per pixel worden opgeslagen zonder multi-byte integer-velden |
| Typische bestandsgrootte | 1 MB - 30 MB; panoramische HDRI-omgevingskaarten met resoluties zoals 8192×4096 bereiken de bovenkant van dit bereik |
| Afmetingslimiet | Geen harde limiet in het formaat; breedte en hoogte worden opgeslagen als gewone decimale gehele getallen in de resolutie-headerregel |
| Kleurruimte | Lineair licht zonder ingebedde gammakromme; EXPOSURE en COLORCORR headervelden bevatten scene-referred correctie-metadata |
| Alfakanaal | Niet ondersteund; noch de RGBE- noch de XYZE-codering bevat een transparantie- of alfalaag |
| Precisie per kanaal | ~8 bits relatieve precisie per kanaal vanwege de gedeelde exponent; absolute nauwkeurigheid hangt af van de belichtingswaarde van de scène |
| Historische extensie | `.pic` werd gebruikt in het oorspronkelijke Radiance-verlichtingssysteem; `.hdr` werd dominant toen het formaat zich verspreidde naar beeldbewerkings- en 3D-tools |
| Uitgebracht | 1985-1989 (Radiance lighting simulation system); .pic originally, later .hdr |
| Laatste versie | RGBE/XYZE encoding (stable; format essentially unchanged) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | floyd.lbl.gov |
HDR conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over HDR-bestanden.