Free HDR Photo Merge Online No Upload

Combine 2–5 bracketed-exposure JPEG or PNG photos into one HDR-like image using Mertens Exposure Fusion — entirely in your browser. No server, no account, no size limit.

🖼️
Click to choose files or drag & drop
JPEG / PNG · 2 to 5 images · processed locally, never uploaded
Add 2–5 bracketed photos to get started.

How it works

This tool implements Mertens Exposure Fusion (Mertens et al., 2007) entirely in JavaScript using the Canvas API. No HDR tone-mapping math is needed — fusion weights do the heavy lifting.

① Load & decode Each image is drawn onto a hidden Canvas to extract its RGBA pixel data at the resolution of the first (reference) image.
② Compute per-pixel weights Three quality measures are computed per pixel per image: contrast (Laplacian magnitude), saturation (σ of RGB), and well-exposedness (Gaussian around 0.5 brightness).
③ Normalize & blend Weights are combined with user-set exponents and normalised so they sum to 1.0 at each pixel, then used to blend each image's colour values — darker shots contribute in highlights; brighter shots fill in shadows.
④ Download Result is exported as lossless PNG (via canvas.toBlob) or 16-bit TIFF (via UTIF.js) for import into Lightroom, Photoshop, or Darktable.

Frequently asked questions

What is Mertens Exposure Fusion and how does it differ from true HDR?
Classic HDR (like Photomatix) first reconstructs a 32-bit radiance map by inverting the camera response curve, then tone-maps it back to 8-bit for display. Mertens Exposure Fusion skips both steps — it directly blends the LDR input images using pixel-quality weights (contrast, saturation, exposedness). The result is perceptually very similar to tone-mapped HDR but requires no camera-calibration data and runs in a plain browser without heavy floating-point HDR pipelines.
How many photos do I need, and what EV spacing works best?
Use 2–5 bracketed shots. A spacing of ±1 EV to ±2 EV per step is ideal — wide enough to recover highlights and shadows, but not so wide that there is no overlap between adjacent exposures. For typical outdoor scenes, a three-shot bracket at −2 EV / 0 EV / +2 EV works very well. Shoot on a tripod or use a burst bracket mode to avoid alignment issues (this tool does not perform image alignment).
Are my photos uploaded anywhere?
No. All processing happens in your browser using the Canvas API and JavaScript. Your images never leave your device — there is no server involved at any step. You can even disconnect from the internet after the page loads and the tool will still work.
When should I use PNG vs. 16-bit TIFF output?
PNG (8-bit) is the right choice for web sharing, social media, or viewing on any device — it opens everywhere. The 16-bit TIFF option preserves finer tonal gradations and is preferred when you plan further post-processing in Lightroom, Photoshop, or Darktable, where working in 16-bit prevents banding in smooth gradients.
What do the Contrast, Saturation, and Exposedness sliders do?
Contrast raises the weight of pixels with sharp local detail (edges and textures), favouring the exposure that renders fine structure most clearly. Saturation favours pixels with vivid, well-separated colour channels — pulling colour from correctly-exposed regions. Exposedness steers the blend toward pixels whose brightness is close to mid-tone (0.5), the sweet-spot of the sensor's dynamic range. Drag any slider to 0 to disable that criterion; set all to equal values for a balanced default fusion.