Auto Levels
Most disappointing photographs are disappointing because their histogram does not reach the ends: the darkest pixel is grey rather than black and the brightest is off-white, so everything looks hazy. Stretching the histogram back out to the full range is a one-click fix, and the only real decision is whether to do it per channel or not.
Drop images here
PNG, JPG, WebP — multiple files allowed
The three modes do different things
Auto contrast measures one luminance histogram and applies the same stretch to all three channels. Colour relationships are preserved exactly — a warm photo stays warm — and only the contrast changes. This is the safe choice and the right one for a picture whose colour you are happy with.
Auto levels measures each channel separately and stretches each to fill the range. Because a colour cast means one channel is compressed relative to the others, stretching them independently removes the cast — which is magic on a scanned print or a photo shot under mixed lighting, and destructive on a deliberately monochromatic image. A sunset processed this way loses its sunset.
Grey-world assumes the average colour of a scene should be neutral grey and scales each channel until that is true. It is a different theory of the same problem and often beats per-channel levels on indoor photos with a strong single-colour light source. It fails on any image genuinely dominated by one colour — a green field, a blue ocean — because there the average should be coloured.
Clipping and strength
Clipping is what makes this robust. If the stretch were based on the single darkest and single brightest pixel, one stuck sensor pixel or one specular highlight would set the whole range and nothing would change. Discarding the darkest and brightest half-percent first means the stretch is based on the bulk of the image. Raise it to 2–5% for a much more aggressive, contrasty look, at the cost of genuinely losing shadow and highlight detail.
Strength blends the corrected result back toward the original. Auto correction at 100% can be heavy-handed, and 50–70% often gives a better picture: the haze lifts without the image looking processed. It also lets you use the aggressive per-channel mode at a fraction of its full effect, which is a good way to reduce a colour cast without eliminating the mood.
FAQ
Nothing changed.
The histogram already reached both ends — there is nothing to stretch. That is common with screenshots, graphics and any image containing pure black and pure white. Increase the clip percentages if you want a stronger effect anyway.
The colours went strange.
Almost certainly per-channel mode on an image with a deliberate colour bias. Switch to auto contrast, which cannot change hue, or drop the strength to 40%.
Are transparent pixels included in the measurement?
No — anything with an alpha below 8 is excluded from the histogram. Otherwise a large transparent area would register as black and skew the shadow end, which is a common bug in tools that do this.
What if I want manual control?
Brightness, Contrast and Gamma give you the individual dials, and Histogram shows you what you are aiming at. Auto levels is a good starting point rather than a substitute.