Image Color Picker & Color Extractor

Pick any color from an image online and extract its full color palette in one place — get HEX, RGB and HSL values with a magnifier loupe, copy them or download the palette as a swatch sheet. Free, fast and 100% private in your browser.

Select an image

or drop a JPG, PNG, WEBP or GIF here

or import from

Processed in your browser — your images never leave your device.

More tools

Grab the exact color from any image in seconds — then turn the whole photo into a ready-to-use palette. oMyImage's color picker lets you hover with a magnifier and click to sample any pixel, then copy its HEX, RGB or HSL value. At the same time it extracts the image's dominant colors and shows how much of the picture each one covers, so you can copy the full palette or download a labeled swatch sheet. Perfect for matching brand colors, building moodboards, and web or product design. Everything runs in your browser, so your image stays private.

How to pick a color and extract a palette from an image

  1. 1

    Upload

    Select an image, or drag and drop it into the workspace.

  2. 2

    Hover & click to pick

    Move over the image to preview colors with the magnifier, then click any pixel to lock its color.

  3. 3

    Read the extracted palette

    The dominant colors of the image are pulled out automatically — use the slider to get anywhere from 2 to 16 of them.

  4. 4

    Copy or download

    Copy any HEX, RGB or HSL value with one tap, copy the whole palette at once, or download it as a PNG swatch sheet.

Sampling a colour and reading the value

Picking a colour reads the value of a single pixel and reports it in the notations different tools expect. HEX for CSS and design software, RGB for code, HSL when you want to build a family of related shades by adjusting one component at a time.

HSL deserves more use than it gets. Because it separates hue from saturation and lightness, producing a lighter version of a brand colour is a matter of changing one number, whereas doing the same in HEX means guessing at three. For generating hover states, disabled variants and tints from a single base colour, it is much the easier model.

One practical caution: photographs contain noise, so what looks like a flat area is not. Sampling two neighbouring pixels in the same patch of sky will give you two slightly different values, neither of them wrong.

Extracting a palette

A dominant-colour analysis looks at the whole image rather than one pixel, groups similar colours together and reports the ones covering the most area. That gives you the palette a viewer actually perceives, which is not always what you would have picked by eye — a colour can feel prominent while occupying very little of the frame.

Photographs make good palette sources because the light in a scene has already harmonised them. Colours lit by the same sun, or the same lamp, share an undertone, and that shared cast is what makes a palette feel coherent rather than assembled.

The usual approach is to take the dominant colour as a base, a light neutral from the image for backgrounds, and one saturated colour for accents. Three or four is plenty; a palette of eight tends to lose its identity.

Colour harmony is not accessibility

This is the mistake worth avoiding. A palette lifted from a photograph is selected for how the colours sit together, and that says nothing about whether text in one of them is legible on another.

Mid-tone colours are the particular trap: they look sophisticated and frequently fail contrast requirements in both directions, being neither light enough to carry dark text nor dark enough to carry light text. WCAG asks for 4.5:1 for normal text and 3:1 for large text, and a good-looking mid-grey-blue on a good-looking mid-tan can land near 2:1.

The workable pattern is to use the sampled palette for accents, borders, illustrations and backgrounds, and to keep text in tones you have explicitly checked. Harmony and contrast are separate problems and need to be solved separately.

Common uses

Matching a design to a photograph is the most frequent one — a site whose accent colour is drawn from its hero image feels considered in a way that an arbitrary blue does not. Building a brand palette from a mood board works the same way.

Beyond that: recovering a colour from a logo when nobody can find the brand guidelines, matching a chart's series colours to a product photo, sampling a competitor's palette from a screenshot, and picking colours out of a painting or textile that already work together.

Everything is sampled from a canvas inside your browser, so the image is never uploaded — which matters when the source is unreleased design work or a client's material.

Image Color Picker & Color Extractor features

Pixel-accurate picker

Sample the exact color of any pixel and read it as HEX, RGB and HSL instantly.

Magnifier loupe

A zoomed loupe follows your cursor so you can target the precise pixel you want.

Full color palette

Extracts 2–16 dominant colors with their share of the image, and keeps small accent colors instead of averaging them away.

100% private

Both the picker and the palette run entirely in your browser with HTML canvas — your image is never uploaded.

Security & privacy

Your image stays private. Color sampling and palette extraction happen entirely in your browser with HTML canvas — nothing is uploaded to a server. No storage, no tracking of your files.

Frequently asked questions

What color formats can I copy?

HEX, RGB and HSL. Click any value to copy it to your clipboard.

How are the palette colors chosen?

The image is sampled at full color fidelity — no blurring or smoothing — then grouped into color regions. The tool over-generates candidate colors and keeps the ones that are both common and visually distinct, so a small but vivid accent still earns a swatch instead of being averaged into the background.

How many colors can I extract?

Between 2 and 16, adjustable with the slider. Each swatch also shows the share of the image closest to that color.

Can I export the palette?

Yes. Copy individual HEX/RGB values, copy the full list at once, or download a PNG swatch sheet with labels.

Does it keep a history of colors?

Yes. Your recently picked colors appear as swatches you can click to copy again.

Which image formats are supported?

JPG, PNG, WEBP, GIF and BMP. For animated images, the colors come from the first frame.

Is it free and private?

Yes. No sign-up, and the image is processed locally in your browser — nothing is uploaded.

What is the difference between HEX, RGB and HSL?

They describe the same colour three ways. HEX is the compact six-digit form used in CSS and design tools. RGB gives the three channel values directly, which is what code and canvas APIs expect. HSL splits colour into hue, saturation and lightness, which is far easier to reason about when building variations of a shade.

Why does the picked colour look different in my design tool?

Usually a colour profile mismatch. An image tagged with a wide-gamut profile such as Display P3 is converted for display, so the value you sample can differ from the value another application reports. Photographs also contain noise, so two adjacent pixels in what looks like flat colour are rarely identical.

How do I build a palette from a photograph?

Take the dominant colour as your base, then pick two or three supporting shades from different areas of the image — a light one for backgrounds and a saturated one for accents. Photographs are a reliable source because natural light already harmonises the colours in a scene.

Will these colours be accessible?

Not automatically. A palette sampled from a photograph is chosen for harmony, not contrast, and mid-tones pulled from an image frequently fail contrast requirements as text. Check any text-and-background pair against WCAG before using it — 4.5:1 for normal text, 3:1 for large.

Can I extract a brand's colours from a screenshot?

Yes, and it is a common use. Take a screenshot of the site or logo and sample from it. Be aware that a screenshot has been through display rendering and image compression, so the result is very close rather than exact — good enough for matching, not for an official brand specification.