Upload a raster image, pick a bucket size, then read the palette and histogram without sending the file anywhere.
JPG, PNG, GIF, BMP, WebP. Large photos shrink on canvas for speed while you explore.
Each pixel arrives as four numbers: red, green, blue, and alpha. This page ignores fully transparent samples so the chart matches what you see in the opaque body of the artwork. We snap each channel to a grid whose width comes from the bucket count you select. Two pixels land in the same bucket when their snapped RGB triples match. Counting those groups yields the palette you see and the percentages behind each bar.
That workflow is fast because everything stays inside the tab you already opened.
Downscaling a 24 megapixel photo to a 900 pixel canvas changes the story. A thin accent stripe might disappear when the image shrinks, while a soft gradient collapses into one average tone. For packaging proofs or print, compare against the full-resolution file inside desktop software. Here the goal is a quick read: where the mass of color sits, not a certified audit.
Brand designers check whether a hero photo accidentally pulls a competitor blue into the top five buckets. Front-end developers sanity-check screenshots before arguing about CSS variables. Photo editors compare two edits by mean RGB shifts alone when words fail.
In March 2024 we watched a three-person studio use mean green and mean blue deltas to pick between two outdoor shots for a landing page. The losing frame read warmer on paper yet cooler in the numbers. They kept the warmer file and tightened the headline contrast instead.
Toolexe ships small, testable utilities. We re-run manual checks on Chrome and Firefox each quarter, or sooner when browsers change canvas APIs. If a release note mentions breaking changes to getImageData, expect a patch within days.
Accuracy here means internal consistency with the scaled preview on this page, not parity with Lightroom, Capture One, or DaVinci Resolve. Those apps operate on different color spaces and often include gamma correction we do not apply.
No LAB or CMYK breakdown. No spot-channel separation. No face-aware weighting. No cloud OCR. Those jobs belong elsewhere by design so the interface stays light on phones.
Practical answers about privacy, formats, and numbers on this screen.
No. The file loads into memory inside your browser, we draw it on a canvas, and the script reads pixels with getImageData. Nothing is posted to Toolexe unless you choose another tool that explicitly uploads.
A deeper bucket setting splits similar reds into separate bins, so each bin holds fewer pixels and the chart looks spikier. A shallow setting merges neighbors, which inflates a few tall bars. Both views are correct for the setting you picked.
We take the count of distinct buckets after quantization, divide by total pixels, then multiply by one thousand for a short readable number. Higher values mean more variety relative to image size. It is a rough index, not an industry standard.
Yes. After a run, use PNG strip for a row of swatches, Chart PNG for the bar graph, or JSON for structured RGB, hex, frequency, and percentage fields you can feed into another script.
Browsers usually decode the first frame for static analysis. If you need every frame, split the GIF elsewhere first, then analyze each frame file.
Mean RGB averages every pixel, weighted by how often it appears. The top swatch shows the single bucket with the highest count after quantization. A sunset might average to gray even when orange wins the popularity contest.