KKwikfig.

Image Palette Generator

Extract the dominant colours of any image as a palette with exact HEX values and pixel shares — sampled locally in your browser, never uploaded. Runs entirely in your browser — your numbers never leave this device.

Choose an image to extract a palette from
Click to browse, or drag and drop a file here — it never leaves your device.

No image loaded yet. Load one and its dominant colours are extracted on this device — the image is never uploaded, and the palette below is computed from its actual pixels.

How it works

Share of a colour = pixels counted in its colour group ÷ total pixels counted × 100 | Colours are grouped by rounding each channel, counted over the decoded pixels, and reported as HEX with their share of the image
What the palette readouts mean
ReadoutMeaningHow to use it
HEXThe group's representative colour as a hex value, e.g. #1e90ffPaste into CSS, a design tool, or the Color Converter
ShareThe group's pixels as a percentage of all pixels countedJudge dominance: the largest share is the image's ground colour
Swatch orderLargest share firstRead the palette as the image's colour hierarchy, not a list of equals
Group countHow many distinct groups the palette showsMore groups suit photographs; flat graphics honestly return few

Your image is processed entirely in your browser and never uploaded: it is decoded on your own device (with its EXIF orientation applied, so a phone photo is analysed upright), its pixels are counted into colour groups, and the largest groups are presented as a palette of swatches with HEX values. Nothing is sent to a server, stored or logged, and the generator works offline once the page has loaded — the same privacy mechanic as every Kwikfig image tool, because it is the same architecture.

Counting is literal. Every pixel belongs to exactly one group, so the shares of all groups sum to 100%, and a flat graphic yields exactly the colours it was drawn with: an image that is half one colour and half another returns those two colours at 50% and 50%. Photographs are the opposite case — thousands of near-identical shades — so channels are rounded into groups before counting, which gathers the sky's hundred blues into the blue that dominates it. The table below explains each readout; the share is the honest headline, because a colour occupying 40% of an image and one occupying 2% are both “in” it, but only one defines it.

The palette is a starting point for design work: click a swatch to copy its HEX, pair it with the Color Picker from Image when you need the exact value at one specific pixel rather than the dominant groups, and check combinations in the Color Converter and Contrast Checker before committing text to a coloured background. The palette lives only in this tab — copy the values out before closing it.

Worked examples

A flat two-colour graphic

Input
A graphic of 1000 × 1000 px, the left half solid #f04e23 and the right half solid #ffffff
Working
Total pixels = 1,000,000. Each colour covers 500,000 px: 500,000 ÷ 1,000,000 × 100 = 50.0% each. A flat graphic has exactly two colour groups, so the palette has exactly two swatches.
Result
#f04e23 at 50% and #ffffff at 50% — exactly two colours

A three-colour flag-style image

Input
An image of 900 × 600 px in three equal horizontal bands
Working
Total pixels = 540,000; each band is 900 × 200 = 180,000 px. Share per band = 180,000 ÷ 540,000 × 100 = 33.3%.
Result
Three colours at 33.3% each

A dominated photograph

Input
A 200 × 200 test image: 30,000 px of one green, 10,000 px of one brown
Working
Total = 40,000 px. Green share = 30,000 ÷ 40,000 × 100 = 75%; brown = 10,000 ÷ 40,000 × 100 = 25%. The shares sum to 100%, as they must.
Result
Green 75%, brown 25%

Frequently asked questions

Is my image uploaded to extract its palette?

No — never. The image is decoded and counted entirely inside your browser; it never leaves your device, is never stored or logged, and the tool works with the network disconnected.

Why does my photograph's palette not list every colour in it?

Because a photograph contains thousands of shades and a palette of thousands is useless. Channels are rounded into groups before counting, so near-identical shades count together and the palette shows the groups that actually dominate, with their shares. For the exact colour of one specific pixel, use the Color Picker from Image.

What does the percentage beside each colour mean?

The share of the image's counted pixels that fell into that colour's group: share = group pixels ÷ total pixels × 100. It measures area, not importance — a small bright accent can matter visually at 2%, and the share tells you plainly that it is 2%.

Why did a logo return only two or three colours?

Because that is what it contains. Flat graphics are drawn from a handful of exact colours, and the counter reports them exactly — an equal two-colour graphic returns its two colours at 50% each rather than inventing variety.

How do I use the palette in my own design?

Click a swatch to copy its HEX value, then paste it into your stylesheet or design tool. The largest-share colour is the natural background or ground; smaller shares are the accents. Check any text-and-background pairing in the Contrast Checker before shipping it.

Related tools

More in Image Tools · Browse all tools