Skip to content
keyMotio

Colour Palette Extractor

Get the dominant colours out of an animation or an image, ordered by how much of the picture each one takes up. Click a swatch to copy its hex, or download the palette as a GPL or PAL file that Aseprite and Krita import directly — or as CSS custom properties. Transparent pixels are left out, so a sticker's palette is its colours and not the colour of nothing.

How many colours

The quantiser is the same one the GIF export uses, so this is exactly the palette an exported GIF would get. Entries that no pixel falls into are dropped, so you may get fewer.

How to extract a colour palette

  1. 1

    Open your file

    A GIF, an animated WebP, a PNG, a JPG — anything your browser can read as an image. Animations are sampled across the whole thing, not just the start.

  2. 2

    Choose how many colours

    Eight for a quick scheme, sixteen or thirty-two for pixel art, sixty-four when you want the detail. Entries no pixel falls into are dropped, so you may get fewer than you asked for.

  3. 3

    Read the result

    Each swatch shows its hex code and what share of the image it covers, biggest first. Clicking one copies the code.

  4. 4

    Take it with you

    Download as GPL for Aseprite and Krita, PAL for older tools, CSS to paste into a stylesheet, JSON if you want the percentages, or a plain list of hex codes.

What makes it different

  • Transparency does not count as a colour

    Pixels that are see-through are skipped before anything is measured. Most extractors count them, which is why a sticker with a transparent background comes out with black or grey as its dominant colour — the colour of nothing.

  • It is the palette your GIF would get

    The quantiser is the same one this site's GIF export uses. So the palette you see is not an approximation of the animation's colours: it is exactly the set a GIF exported from here would be reduced to.

  • Ordered by how much of the picture each colour covers

    An unordered palette is a list of colours. Sorted by share, with a percentage on each swatch, it tells you which ones actually carry the image and which are trim.

  • Formats that pixel-art tools already read

    GPL and PAL import straight into Aseprite and Krita, no conversion step. That is the point: the palette should land in the program you are drawing in.

  • Animations are sampled all the way through

    Frames are taken spread across the animation rather than from the beginning, so one that opens on a fade to black does not come out as a palette of blacks.

Supported formats

In: animated GIF, animated WebP, APNG and animated AVIF, plus any still image your browser can decode — PNG, JPG, WebP, AVIF and usually SVG and BMP. Out: GPL (GIMP, Aseprite, Krita), JASC-PAL, CSS custom properties, JSON with the percentages, or a plain hex list.

Frequently asked questions

Why did I get fewer colours than I asked for?
Because the quantiser always returns a full palette, and entries that no pixel actually falls into are dropped. An image with six flat colours has six, whatever number you ask for.
Which format do I want?
GPL if you are going to draw in Aseprite or Krita: both import it directly. CSS if it is for a website. JSON if you want to keep the percentages, which no palette format carries. The hex list if you just need to paste the codes somewhere.
Does it look at every pixel?
No, and it does not need to. Pixels are sampled — roughly a hundred thousand of them, spread over up to twenty-four frames. A 44-frame animation is seven million pixels; the palette comes out the same and the result is instant.
Why is the dominant colour not the one I expected?
Dominance is measured by area, not by how much a colour draws the eye. A big flat background wins over a small bright subject even though your eye goes to the subject. The percentages let you see that.
Is my file uploaded?
No. It is decoded and measured by your own browser, and nothing is sent anywhere.
Can I use this on a photograph?
Yes, and it works well for building a scheme from one. Photographs have thousands of distinct colours, so the number you pick matters more: eight gives you a mood, thirty-two gives you the detail.