Brightness & Contrast Adjuster

Office-lit product shots and phone captures often land flat. This workspace reads your file locally, paints before and after canvases, and keeps RGB histograms under each pane so you see clipping before you save.

Load a picture

Tap to browse, or drop JPG, PNG, GIF, or WebP. Large files still decode on your device, so patience beats tab-hopping.

Preview pair

Source

Source frame appears after upload.

Adjusted

Edited preview renders beside the source.

Processing uses canvas pixels on your machine. Close the tab and the buffers go away. For smaller file sizes after editing, run the same asset through the image optimizer.

Textbook before and after, no stock photo required

Picture a 2400 px wide shelf photo shot under cool LEDs. Before: average luminance sits low, histogram leans left, bottle labels look muddy. After a +18 brightness tick, +12 contrast, and a modest shadow lift, the same histogram shows separation without a hard spike at 255.

Picture a backlit phone snap of a friend on a balcony. Before: histogram stacks on the right. After: negative highlights, slight exposure pull, midtone nudge, skin returns structure. Neither story needs a download link to be useful, they simply anchor what the sliders are for.

What happens to each pixel

Exposure scales RGB in a nonlinear way similar to doubling ISO. Brightness shifts all channels together. Contrast pivots values around mid gray. Highlights, shadows, and midtones then apply weighted nudges based on luminance bins. The histogram canvases recompute from whatever is on screen, so they always describe the preview, not some hidden master file.

ControlRough mental model
ExposureMultiplicative lift, strong on overall scene energy
BrightnessAdditive push, risks clipping if you lean hard
ContrastStretches or compresses distance from middle gray
Highlights / shadows / midtonesRegional trims after the global pass

When desktop software still wins

16-bit raw workflows, printer ICC profiles, and batch jobs belong elsewhere. This page keeps scope honest: one raster at a time, 8-bit canvas math, PNG download. Animated GIFs decode to a frame inside the browser. Motion intent belongs in a dedicated GIF tool.

Color-first follow-ups

Once luminance feels stable, palette work belongs in specialized pages. Pull swatches with the color extractor, or audition stylistic looks inside the filter toolkit instead of stacking mystery contrast here.

Thumb-friendly order of operations

On narrow screens the rail sits under the preview pair. That is intentional: you see the histogram shift before you hunt for the next slider.

Start with exposure when the whole frame feels uniformly dark or hot. Reach for brightness when only a small nudge is missing after exposure. Contrast comes next if edges still feel mushy. Save highlights and shadows for local rescue work, then let midtones massage skin or product labels without touching deep blacks.

The floating action row pins Auto, Reset, and PNG on phones so you do not scroll past the canvases when you are ready to ship a file. If the sticky bar covers iOS home-indicator space, swipe slightly; padding respects safe areas.

We still recommend finishing with the optimizer when a CMS enforces a megabyte ceiling. Histogram health does not guarantee byte size.

Brightness, contrast, and histogram questions

Practical answers for the controls above.

Why do my whites turn chalky before the histogram hits the edge?

Contrast and highlight sliders interact. A contrast bump stretches values, so a simultaneous highlight lift pushes light neutrals into clipping sooner than a single slider would suggest. Undo one move at a time to see which control caused it.

Does auto tone read my creative intent?

No. It samples average luminance and spread, then applies conservative brightness, shadow, highlight, and contrast offsets. Treat it as a starting point, especially for evenly lit product shots.

Will my file upload to Toolexe servers?

The page uses the File API and canvas in your tab. Network calls are not required for adjustments or download. Clear the tab memory when you are finished on shared computers.

Why PNG only on download?

Canvas export defaults to PNG to preserve the preview pixels without another compression pass. Re-encode to JPG elsewhere if you need a smaller social payload.

My phone photo looks different after save—what changed?

Some devices attach display P3 or HDR metadata. Browsers still paint into an sRGB canvas here, so extremely saturated scenes flatten slightly. For critical color work, verify on a calibrated display outside the browser.