HDRify: True HDR image viewer, and tool set in pure JavaScript

Shiny pics, dim screens: Chrome cheers, Safari sulks

TLDR: HDRify brings true HDR viewing to the web with a pure JavaScript tool that supports HDR, EXR, and Ultra HDR. Commenters say the tech is great but the real-world is chaos: Chrome works best, Safari blocks key features, Windows browsers fail, and screens randomly dim—blaming big tech for ignoring display standards.

HDRify drops a slick web demo that promises “true HDR”—super-bright photos—right in your browser. It reads HDR, EXR, and even Ultra HDR “gain map” JPEGs, and lets you pick tone-mapping styles like ACES, Reinhard, Khronos Neutral, or AgX. It’s pure JavaScript, works in the browser and Node, and there’s a CLI for bulk conversions. Sounds dreamy, right? The comments turned it into a reality check. Developer bhouston bluntly notes it works best in Chrome, because Safari won’t accept floating‑point image data in Canvas even with “display‑p3” color space. Translation: Apple’s browser plays hard to get.

Then Windows users crash the party: jiggawatts says “Direct HDR” fails on Firefox, Edge, and even Chrome on Windows 11 with an HDR OLED. Cue the meme: High Drama Rendering. bsimpson adds a classic gripe—images randomly make the screen go dark—calling out how Macs show HDR inside pages. The thread turns into a cross‑platform blame game: Chrome gets praise, Safari gets side‑eye, and Windows browsers get roasted. The hottest take? Big tech doesn’t care because nobody’s bonus depends on correct HDR output. So HDRify is impressive—but it’s also a spotlight on the messy state of HDR standards and support. Try the demo, bring popcorn.

Key Points

  • HDRify is a pure JavaScript library and web demo that reads/writes HDR (Radiance RGBE), EXR (OpenEXR), and Ultra HDR/Ultra JPG (JPEG-R with gain maps).
  • The viewer can output true HDR in compatible browsers (mainly Chrome) when using the “Direct HDR” mode.
  • It works in both Node.js and the browser, and is designed for tree-shaking to minimize bundle size.
  • EXR read/write supports multiple compression formats: none, RLE, ZIPS, ZIP, PIZ, and PXR24 (Pixar 24-bit).
  • Tone mapping options include ACES, Reinhard, Khronos Neutral, and AgX (Blender), and a CLI (hdrify-cli) is available on npm for batch use.

Hottest takes

"It works best in Chrome as for some reason you can not set Floating point data into a Canvas object in Safari" — bhouston
"one of my pet peeves of computing in this millennium has been images that make your screen arbitrarily go dark" — bsimpson
"It’s 2026 and we’ve figured out how to make computers talk in 100 languages, but not how to show pictures consistently" — jiggawatts
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.