Image palette extractor

Drop a picture and get its dominant colors — HEX, RGB and how much of the image each one covers.

Drop an image and its colors come back as a palette.

Drop an image here, or press ⌘V to paste.

Supports JPEG, PNG, WebP, GIF (first frame) and BMP — up to 20 MB and 16 megapixels. The picture is downsampled before reading pixels, so a 4K photo is fine.

The image never leaves this device and the page sends no network request.

No picture handy? “Load sample” draws one in your language so you can see the palette right away.

How to use it

  1. Drop an image on the card, paste it with ⌘V, or press “Choose image”. A palette of HEX, RGB and share-of-pixels appears immediately — there is no button to press and nothing is uploaded.
  2. Pick how many colors you want (6, 8 or 16) and whether to sort by dominance or by hue. The palette updates the moment you change either, with no re-decode.
  3. Press “Copy” on any swatch to grab that one color, or “Copy as CSS” / “Copy as JSON” to take the whole palette. “Download JSON” / “Download text” save it as a file. Your original is never modified.

Example

Sample image (loaded with “Load sample”)

ykit-palette-en.jpg
1200 × 800 · 53.4 KB · gradient + text

Palette of 8 colors

#235695  rgb(35, 86, 149)  12.5%
#3834BE  rgb(56, 52, 190)  12.5%
#4355A5  rgb(67, 85, 165)  12.5%
… 5 more

These are the real median-cut results on the English sample image (2026-10-27, Chromium). The sample text is drawn in the page language, so the Chinese and Arabic samples differ slightly in bytes and mid-gradient colors. Percentages describe the 200 px downsampled image and are rounded to one decimal — the tool says so instead of faking per-pixel precision.

Rules, limits and known issues

  • Nothing is uploaded: the picture is read, downsampled and analyzed in this tab, and the page never sends a network request. Your original file is only read, never modified.
  • The share-of-pixels is measured on the downsampled image (200 px longest edge) and rounded to one decimal; it is not a count of every original pixel. Rounding means the percentages may not add up to exactly 100.
  • Transparent pixels (alpha below 50%) are ignored: they carry no color, so including them would only pollute the palette. An image that is fully transparent reports “no visible pixels” instead of inventing a color.
  • Up to 20 MB and 16 megapixels per image, refused before decoding so a huge file cannot eat the tab. The picture is downsampled to a 200 px longest edge before pixels are read, which keeps extraction fast but slightly smooths fine color detail.
  • There is no “extract” button and no exact eyedropper: this tool reports the dominant palette, not the precise color under your cursor, and it does not judge whether the colors are harmonious.
  • Only one image at a time. There is no history and no share link beyond the clean page URL — nothing is stored, so a reload starts from zero.

What people usually need next, once they have the colors.