Read and write
Move between OpenEXR, Radiance RGBE, Ultra HDR, and Adobe gain map JPEGs with a consistent API.
Explore →OpenEXR · Radiance HDR · Ultra HDR
Read, transform, and write high dynamic range images anywhere JavaScript runs. One typed pixel format connects your browser, server, and creative tools.
npm install hdrify

Every highlight. Every channel.
Float32Array · RGBA · linear lightMove between OpenEXR, Radiance RGBE, Ultra HDR, and Adobe gain map JPEGs with a consistent API.
Explore →Resize, flip, convert color spaces, and apply ACES, AgX, Khronos Neutral, or Reinhard tone mapping.
Explore →Use the core library in browsers, workers, and Node.js. Add React previews, a CLI, or editor integration.
Explore →A small API for a wide range
Readers return a shared HdrifyImage: dimensions, floating-point RGBA pixels, and metadata. Transform it once, then choose your output format.
Pure JavaScript, TypeScript definitions, and tree-shakeable functions let you bring only the tools your application needs.
See complete code examples →import { readExr, writeHdr } from 'hdrify';
const response = await fetch('/studio.exr');
const image = readExr(new Uint8Array(await response.arrayBuffer()));
// One floating-point RGBA image. Any supported output.
const radiance = writeHdr(image);
Display HDR images with HdrifyCanvas and control exposure and tone mapping.
Build a preview →Convert files, inspect metadata, and generate reference images from your terminal or scripts.
Use hdrify-cli →Preview HDR images and convert formats without leaving your editor.
Get the extension →