A dim laptop screen or a bright phone can make a well-exposed photo look wrong. A histogram shows how the tones are really distributed. Drop in an image to see its red, green, blue and luminance histograms, clipping warnings and a plain-language exposure reading, all calculated in your browser.
Processing locally on your device
Overview
A histogram is a bar chart of tones. An 8-bit image has 256 possible values per channel, from 0 (black) on the left to 255 (white) on the right, and each bar shows how many pixels have that value. Everyday photos usually spread across most of the range. A graph piled up on the left suggests underexposure, one piled up on the right suggests overexposure, and a tall spike at either edge means clipping: detail lost to pure black or pure white that no slider can bring back.
This viewer computes four 256-bin histograms: red, green, blue and luminance. Luminance uses the Rec. 709 weights (0.2126 R + 0.7152 G + 0.0722 B), which follow how the eye perceives brightness, so green counts most and blue least. Show the three colour channels as an RGB overlay, where overlapping areas blend to yellow, cyan, magenta or neutral grey, or stack each channel in its own row. You can also show luminance on its own. A logarithmic scale lifts small counts so they stay visible next to a huge spike, such as a white product background.
For every channel the tool reports the mean, median, standard deviation, minimum and maximum, plus the share of pixels sitting exactly at 0 (shadow clipping) and 255 (highlight clipping). If either figure goes above 1%, you get a warning. From the luminance statistics it writes a short assessment, from underexposed through well exposed to overexposed, and from low to high contrast. Standard deviation is a good contrast measure: under about 40 usually looks flat, while above about 75 is punchy.
Pixels are read with the Canvas API. To keep the tool fast even with 50-megapixel camera files, the image is first downscaled to at most about 2 megapixels. Because a histogram describes proportions, the shape and statistics stay effectively the same. Fully transparent pixels are ignored, so a cut-out PNG isn’t skewed by its empty background. Nothing is uploaded.
| What you see | What it usually means | Typical fix |
|---|---|---|
| Bulk of the graph on the left, low mean | Underexposed or low-key scene | Raise exposure or lift shadows |
| Bulk of the graph on the right, high mean | Overexposed or high-key scene | Lower exposure or highlights |
| Spike at 255, highlight clip above 1% | Blown highlights | Recover highlights; reshoot if critical |
| Spike at 0, shadow clip above 1% | Crushed shadows | Lift blacks or shadows |
| Narrow hump, std dev under ~40 | Low contrast, flat or hazy look | Add contrast or a gentle S-curve |
| Colour channels offset from each other | Colour cast | Correct the white balance |
Drop, paste or browse for an image. It appears next to its histogram.
Choose RGB overlay, stacked channels or luminance only, and switch between linear and logarithmic scale.
Hover the histogram (or focus it and use the arrow keys) to read the exact count and percentage for any value from 0 to 255.
Check the stats table, the clipping warnings and the exposure and contrast assessment.
Export the histogram as a PNG or the statistics and raw bin counts as a CSV.
Use cases
Before you brighten a photo that looks dark on your laptop, check whether the luminance histogram really leans left. If the mean sits around the middle and nothing is clipped, the problem is your screen brightness, not the file.
Printers struggle to hold detail in the deepest shadows. Make sure the shadow clipping figure is near zero and the minimum isn’t stuck at 0 across large areas before you send files to a lab or a magazine.
Switch to stacked channels and compare where each one sits. If blue runs consistently further right than red and green in a neutral scene, the white balance is too cool and needs warming.
Export the CSV before and after a grade to record how mean, spread and clipping changed, or attach the PNG chart to a retouching brief, a class assignment or a QA report.
Pro tips
Answers to common questions about the histogram viewer.
Reading every pixel of a 24–50 MP photo takes noticeably longer and uses hundreds of megabytes. A histogram describes proportions, so a copy of up to about 2 MP gives practically the same shape and statistics in a fraction of the time. The page tells you the size that was analysed.
It is the share of pixels at exactly 0 (shadows) or 255 (highlights) in that channel. Those pixels have no tonal detail left. The tool warns you when either figure goes above 1%, which is usually where clipping becomes visible.
Luminance is a weighted mix (21% red, 72% green, 7% blue, per Rec. 709) that matches perceived brightness. A saturated blue sky can look bright in the blue channel but sit fairly low in luminance.
It uses the mean, standard deviation and clipping of the luminance histogram. A low mean or heavy shadow clipping reads as underexposed, a high mean or heavy highlight clipping as overexposed, and the spread of tones sets the low, normal or high contrast label. Treat it as a hint, not a verdict, since low-key and high-key photos are dark or bright on purpose.
One row of stats per channel (mean, median, standard deviation, min, max, shadow and highlight clipping), followed by a 256-row table with the pixel count for every value in red, green, blue and luminance. It opens in Excel, Google Sheets or any analysis script.
No. ToolEnhancer processes files on your own device inside the browser. They are never sent to, stored on or seen by our servers.
Yes. The histogram viewer is free to use with no sign-up, no watermarks and no daily limits.
Strip location and camera metadata from photos.
Pick any pixel colour from an image.
Extract dominant colours as HEX, RGB and HSL.
Diff two images side by side or overlaid.
Encode images as data URIs for HTML and CSS.
Create QR codes with colours and logos.