Downsample for speed
The browser draws a proportional copy of the image to a small local canvas. This keeps processing fast without relying on a remote image service.
Drop in a photo, illustration, or visual reference and turn its strongest color families into an editable HEX palette you can copy, save, or continue in Generator.
Image processing stays in this browser.The picker decodes your selected file through a temporary browser object URL, samples it in a local canvas, and does not upload the image file to Colorrow or an image-processing service.
Use an image whose lighting and mood you actually want to carry into the palette.
or choose a file from this device
Your selected image stays visible here while you refine its extracted palette.
Choose an image or drop it into the upload area.
Copy any HEX value, edit a color directly, remove one you do not need, or regenerate the original extraction.
Generator currently accepts five imported colors, so Open in Generator sends the first five colors from this palette.
The browser draws a proportional copy of the image to a small local canvas. This keeps processing fast without relying on a remote image service.
Pixels are grouped into compact RGB buckets, then a weighted median-cut pass separates the image into dominant color clusters instead of taking a few arbitrary samples.
Candidate colors are compared in a perceptual color space so near-duplicates are deprioritized and smaller but clearly distinct color regions have a better chance to survive.
Large surfaces—sky, walls, clothing, backgrounds—usually contribute the most pixels. They often become the first colors in the result and are useful for establishing the overall mood.
A smaller object can be visually important even when it covers little of the image. The extraction keeps perceptually distinct clusters, but you should still edit or remove colors based on the job your design needs them to do.
Keep one or two colors that clearly represent the source image instead of forcing every extracted color into the final system.
Photos rarely provide ideal text, border, and surface colors. Add dependable light and dark neutrals before using the palette in an interface.
Once the palette has roles, check important foreground/background combinations for contrast rather than assuming a visually pleasing photo is accessible UI.
The picker code creates a temporary browser object URL for the selected file, decodes it locally, samples pixels through a canvas, then revokes that object URL when the preview is replaced, reset, or the page exits. It contains no image-upload request, fetch call, or XHR path.