Why most brightness sliders wash photos out
A photo that came out too dark is missing light. The usual brightness slider doesn't add light, though; it does one of two simpler things to the stored pixel values. It either adds the same number to every value, or multiplies every value by the same factor. We tested both, and a gamma curve, against the way this page works.
The test: four real photos (a landscape, two phone photos of a harbour and a boardwalk, and a close-up of an autumn leaf) were made exactly two stops too dark, in linear light, which is what a too-short exposure does. Each method was then set so the photo came back to its original average brightness, and we compared the result with the real photo. Colour difference is CIELAB ΔE; below about 1 the eye can't see it.
| Method | Colour difference from the real photo | Colour strength | Turned flat white |
|---|---|---|---|
| Add the same amount to every pixel | 10–28 | −42 to −45% | 0% |
| Gamma curve on each channel | 8–22 | −26 to −43% | 0% |
Multiply (CSS brightness()) | 2.0–5.0 | +7 to +10% | 0.2–2.8% |
| This page, +2 stops | 0.53–0.59 | −0.1 to +0.4% | 0% |
Adding a constant and bending a gamma curve both lift the shadows, but they lift every colour channel by a similar amount, which moves each colour towards grey: the photos kept only 55–74% of their colour. Multiplying is closer, because light really does multiply, but it works on gamma-encoded values instead of on light, so colours come out slightly too strong, and anything already bright gets pushed past the maximum. On the leaf, 2.8% of the picture turned into flat white with no detail left.
How this page brightens
Each pixel is converted to linear light, multiplied by 2 to the power of the stops you choose (+1 stop doubles the light, +2 is four times), and converted back. Red, green and blue are multiplied by exactly the same factor, so every colour keeps its hue and strength. When the brightest channel of a pixel gets close to the maximum, the whole pixel is rolled off gently instead of being cut, so clouds, skin highlights and white shirts keep their texture. The result note tells you how much of your photo a plain multiplier would have blown out with the same setting.
Automatic measures the median brightness of each photo and sets the stops so the middle tones land on photographic mid grey, between −1 and +4 stops. On our four darkened photos it chose +1.1 to +2.1 stops; a dim landscape with a bright sky gets less than a uniformly dark room. If it is not quite to your taste, move the slider: the automatic choice is just a starting point.
Lift shadows for backlit photos
A face against a bright window, or a garden in the shade under a bright sky, isn't too dark overall; only the shadows are. Lift shadows adds light only to the darkest third of the picture and fades out before the mid-tones. At 100 on our landscape the darkest areas rose by 35 levels on average while the bright areas changed by less than a tenth of a level. Combine it with a small exposure increase for a photo that is both dark and contrasty.
What brightening cannot do
A dark photo was recorded with less light, so it also contains relatively more camera noise. Brightening shows that noise along with everything else. Up to about two stops the result usually looks clean; at three stops or more, expect grain, especially in phone photos taken at night. Areas that are pure black in the original have no information to bring back.
Related tools
If the photo is also a little soft, sharpen it after brightening. For a black-and-white version, use Black and white image; to shrink the result for an upload form, Compress image to an exact size; and to remove the location and camera details before sharing, Remove EXIF data.