creatorvalet

Color palette from image — full-pixel extraction

Count every decoded pixel, build a deterministic 5-, 8- or 12-color palette, and export the exact coverage receipt.

  • SECURE
  • NO UPLOADS
  • NO SIGNUP
  • BROWSER BASED
  • FREE
  • FOREVER.

Support us with a link or a share

Choose, drop or paste an image

PNG, JPEG, WebP or AVIF. Processing stays in this browser and reads the full decoded image.

Extract a color palette from image pixels, not a resized thumbnail

Choose, drop or paste a PNG, JPEG, WebP or AVIF image. The browser decodes it with the source orientation applied, then a local worker reads the complete RGBA pixel buffer. There is no sampling grid and no hidden resize. A 4,000 × 3,000 image therefore contributes all 12,000,000 decoded pixels to the count. Large files receive a memory warning before that full-buffer analysis starts; the warning is advice, not a size limit.

Pixels with alpha below 128 are excluded. This prevents nearly transparent matte colors from becoming prominent swatches, while pixels at alpha 128 or above keep their decoded RGB values. The receipt reports total, included and excluded pixel counts so the threshold is visible rather than an undocumented cleanup rule.

Deterministic median cut with measured coverage

Median cut groups the exact RGB histogram into 5, 8 or 12 representative colors. After the swatches are chosen, every included source pixel is assigned to its nearest swatch in RGB distance. That second pass supplies the displayed coverage count and percentage. It also makes the ranking reproducible: greater coverage comes first, and equal counts are ordered by lowercase HEX ascending.

Coverage is descriptive, not semantic. A frequent color is not automatically a brand color, background or accessible text color. The generator does not invent names such as primary and accent. It exports neutral numbered CSS properties along with CSV rows and a JSON receipt, leaving role assignment to the designer who understands the image and its intended interface.

The reproducibility boundary starts after browser decoding

Identical decoded RGBA bytes always produce the same histogram, median-cut palette, coverage values and ordering. Image decoding happens before that algorithm. ICC profiles, color-space conversion and lossy JPEG reconstruction can yield slightly different bytes across browser engines or decoder versions. For an exact cross-machine comparison, use images normalized to the same unprofiled PNG RGBA bytes and compare the exported JSON receipts.

HEX output describes the browser-decoded RGB pixels; it is not a Pantone lookup, a CMYK separation or a calibrated print proof. It also does not identify a color at a clicked point. Point sampling is an eyedropper job, whereas this page summarizes the distribution of the whole image. If the source is a rendered web page rather than an image file, use the website color palette extractor. That tool measures resolved CSS colors, font stacks, spacing and shadows from an open page instead of reducing raster pixels.

Local analysis and portable exports

The source image remains in this tab. Decoding uses the browser image API, and the full pixel count runs in a worker so the page can continue painting while a large histogram is built. JSON keeps the source filename, MIME type, byte size, dimensions, decoder statement, algorithm version and alpha threshold beside every swatch. CSV is convenient for analysis; CSS provides numbered custom properties ready for a reviewed design system. Copying or downloading never sends the original image to CreatorValet.

Questions

How do I extract a color palette from an image?

Choose, drop or paste a PNG, JPEG, WebP or AVIF image and select 5, 8 or 12 colors. The tool decodes the image locally, counts every pixel with alpha of at least 128, builds a median-cut palette and ranks each swatch by the number of source pixels nearest to it.

Does the palette generator sample or upload my image?

No. The full decoded RGBA pixel buffer is analyzed in a browser worker on your device. The image and its pixels are not sent to CreatorValet for processing, and the receipt reports the included and transparent pixel counts.

Why can the palette differ between browsers?

The palette algorithm is deterministic for the same decoded RGBA bytes. Browser image decoding and color management happen first, however, so ICC-profiled or lossy images can produce slightly different bytes in different engines. PNGs exported to the same unprofiled RGBA bytes are the strongest reproducibility input.

How are transparent pixels handled?

Pixels with alpha below 128 are excluded completely. Pixels with alpha of 128 or more contribute their decoded RGB values. The receipt names the threshold and records both included and excluded counts.

What do palette coverage percentages mean?

After median-cut chooses the swatches, every included source pixel is assigned to its nearest swatch in RGB space. Coverage is that assigned count divided by all included pixels. It describes this image, not visual importance or a semantic role such as brand, accent or background.