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.
| Control | Rough mental model |
|---|---|
| Exposure | Multiplicative lift, strong on overall scene energy |
| Brightness | Additive push, risks clipping if you lean hard |
| Contrast | Stretches or compresses distance from middle gray |
| Highlights / shadows / midtones | Regional 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.
