What this tool does
A histogram is the fastest way to see what an image actually contains rather than what it looks like on your screen, and it is the number photographers check first after a shoot. This one draws red, green, blue and luminance across 256 bins, then reports the exposure verdict, the mean and spread, the share of pixels piled against each end, and a clipping map painted over your own picture. The clipping percentages are exact, so a blow-out is measured rather than guessed at.
How it works
Luminance is not the average of the three channels. It is computed with the ITU-R BT.601 weights, 0.299R + 0.587G + 0.114B, because the human eye is far more sensitive to green than to red or blue. A plain average would call a green leaf as dark as a blue sky, which is exactly the mistake that makes a hand-rolled histogram disagree with every other one. The weights also add up to 1.0, so a neutral grey lands where it should.
Clipping is counted at exactly 0 and exactly 255 in any channel, and it is the number worth acting on. A pixel sitting at 255 has no detail left in it: the sensor recorded more light than the file can hold and the excess was discarded at the moment of capture, so the texture in a blown sky is not hidden in the data, it does not exist. No amount of editing, curves or AI brings it back, which is why a histogram of an over-exposed shot is a diagnosis rather than a starting point.
The comb is the other fingerprint. Regular empty bins through the middle of the range, each bracketed by occupied bins on both sides, mean the file was already stretched in editing: a 16-bit source pushed to 8 bits, or a levels adjustment with the black and white points pulled together. The gaps are baked into the file, and they are invisible on screen until the image is printed or enlarged.
The spatial companion is what a bar chart cannot do. The clipping map paints every clipped pixel magenta and every crushed pixel red over the picture itself, so you learn where the blow-out is rather than only how much of it there is. A studio portrait with 3% clipped highlights is fine; the same 3% on a face is a problem, and the percentage alone cannot tell you which. A logarithmic scale is available because one spike from a flat backdrop otherwise flattens everything else into invisibility.
Worked example
A wedding photographer's flash test frame comes back and the sky looks suspiciously flat. Does it still have highlight detail?
- Read the four histograms; the red, green and blue channels each show a spike at bin 255
- Clipped high is 100.0% of pixels and clipped low is 0.0%, because nothing is at 0
- Mean luminance is 255.0 with a spread of 0.0, so there is no tonal separation at all
- The verdict is clipped highlights, and the clipping map paints the whole frame magenta
A 100% clipped-high reading is not a near miss, it is a completely blown image: every pixel in every channel is already at maximum, so the original capture discarded all of the sky's detail. There is nothing to recover in editing.
Accuracy and limitations
- Clipped data is unrecoverable. The information was thrown away at capture, not hidden in the file, so no editor can bring a blown highlight back.
- A browser reads an image at 8 bits per channel even when the file stores more, so a subtle gradient in a 16-bit TIFF can read as a comb here.
- Very large images are downscaled to about three megapixels before analysis, which keeps the tab responsive and makes the percentages honest to well under a tenth of a point.
Frequently asked questions
- What does a histogram tell me about an image?
- It shows how many pixels sit at each brightness level, per channel. A pile-up at the right-hand end means blown highlights, a pile-up at the left means crushed shadows, and a shape squeezed into the middle means the image is flat and has little tonal range to work with.
- How do I check an image for blown highlights?
- Drop it in and read the clipped high percentage, which counts pixels sitting at exactly 255 in any channel. Anything at 1% or more is reported as clipped highlights, and the clipping map shows which part of the picture is responsible rather than only the total.
- What is a luminance histogram?
- It is the brightness distribution with the RGB channels collapsed into one curve, using the BT.601 weights 0.299R + 0.587G + 0.114B. It is not the plain average of the three channels, because the eye is far more sensitive to green and an unweighted average would misjudge almost every photograph.
- Why is my image showing a comb or gaps in the histogram?
- Regular empty bins through the middle, each with an occupied bin on either side, mean the file was stretched in editing before it reached you. A 16-bit source pushed to 8 bits, or a levels slider pulled in, leaves gaps that are invisible on screen and obvious at print size.
- Can clipped highlights be recovered in editing?
- No. A pixel at 255 holds no detail, because the sensor recorded more light than the file could store and the excess was discarded at capture. Histogram adjustment can only move the boundary you have left, and here there is nothing left above it.
- Is my photo uploaded to build this histogram?
- No. The file is decoded, read through the canvas API and analysed in your browser, tab by tab, without any network request. The same is true of the clipping map, which is drawn from the same pixel buffer.