Image Color Extractor pulls a practical palette out of a local image: drop it, paste it or choose a file, pick 4 to 12 colors, and copy the HEX values straight into CSS.
The picture is sampled on a reduced canvas inside this browser tab, so nothing is uploaded. The output approximates the dominant colors — it is not an eyedropper reading of exact pixels.
The image is drawn onto a canvas scaled so its longest edge is 420 pixels, then read on a grid that samples at most about 140,000 pixels. Colors fall into 4-bit red/green/blue buckets; buckets are ranked by pixel count, and colors closer than a distance of 28 are merged before the final 4–12 are chosen.
Each swatch is the average of its bucket, so the result summarises dominant regions. Fine gradients, dithering, one-pixel lines and anti-aliased edges can be smoothed away by the reduction — treat the values as starting points, not measured originals.
The percentage under a swatch is the share of sampled, opaque pixels that landed in that bucket; the figures add up to roughly 100%. The number you choose is a maximum: a flat image yields a single swatch at 100%, and an image with fewer distinct colors yields fewer swatches.
A fully transparent image reports 0 dominant colors and shows no swatches. Swatches are real buttons, so they can be reached with the keyboard, and every copy is confirmed in the status line — or reported as blocked when the browser refuses clipboard access.
Analysis happens entirely in the tab: the browser decodes the file, the canvas is read back through pixel APIs, and no image data is sent anywhere, so the tool also keeps working offline. In a desktop Chrome test a 4000 × 3000 photo was analysed in about 0.2 seconds.
The 40 MB limit exists because decoding happens in the browser. For accessibility work, validate each final text/background pair with the contrast checker instead of treating a palette as a WCAG guarantee.