Image Color Picker
Drop in a photo, a screenshot, or a logo and click the colour you want. You get the exact pixel under the cursor in hex, RGB, and HSL, each one copyable on its own, plus a dominant palette of the whole image if what you actually need is the set rather than one value. Both run against a bitmap decoded inside this page, so a screenshot of unreleased work can be sampled without it ever reaching a server.
Drop an image to pick colours from
One file at a time, up to 50.0 MB. The image is decoded inside this tab and read pixel by pixel — nothing is uploaded.
Colours
Nothing loaded yet. Drop an image above — every pixel is read inside this browser tab, so a screenshot of unreleased work can be sampled without leaving your machine.
Design with the colours you just pulled out
A palette lifted from a photograph is a brand kit waiting to happen. Moda is where you use it.
Try Moda free →One pixel or the whole picture — they answer different questions
Clicking asks "what colour is that exact spot", and the answer has to be exact: the value reported is the byte stored at that coordinate in the file, read at full resolution even though the preview on screen is scaled down to fit. That matters for the job people usually arrive with — matching a brand colour off a screenshot, where being one shade out is the whole failure. The palette asks a different question: what colours is this image mostly made of. That one cannot be answered by any single pixel, and it is grouped from the picture as a whole rather than sampled at points, so a photo whose sky is a thousand slightly different blues returns one blue rather than five near-identical ones.
How the palette is grouped, and why it is fast on a huge photo
Swatches come from median cut: the pixels are put in one box, the box is repeatedly split along whichever of red, green, or blue it varies most across, and each final box averages to a swatch. Splitting the most populated box first is what makes the results track coverage — the colours you get are the ones the image is largely made of, ordered by how much of it they account for, not the ones that are most vivid. Near duplicates are dropped, so a flat graphic returns the three colours it actually contains instead of six boxes averaging to the same beige. The grouping runs over a downsample of at most 40,000 pixels rather than the full raster, which is why a 50-megapixel photo answers instantly: dominance is a proportion, and a proportion does not change when you look at the image smaller.
Transparent pixels report their own colour, not what you see
A partly transparent pixel stores a colour and a separate opacity. What you see on screen is that colour blended with whatever is behind it; what is stored is the colour on its own. This tool reports the stored value and says so when the pixel is not fully opaque, because the alternative — silently returning the blend — hands you a hex that depends on the background the preview happened to use. If you want the blend, flatten the image onto a background first and pick from that.
Screen colour is not print colour, and neither is a photograph
The values here are sRGB, which is what a browser, a phone, and every design tool on a screen mean by a colour. Two things routinely break the assumption that this is the "real" colour of an object. A photograph carries its lighting: the same wall sampled in daylight and under a warm bulb gives two very different hex codes, and neither is wrong. And a colour destined for print goes through a CMYK conversion that cannot reproduce the most saturated part of the sRGB range at all — the conversion is where the surprise lands, not here. For anything brand-critical, pick from a flat asset rather than a photo of one.
Frequently asked questions
Is my image uploaded when I pick a colour from it?
No. The file is decoded into a bitmap held in this page, and every pick draws exactly one pixel of that bitmap onto a one-pixel canvas and reads it back. Nothing about that needs a server, so no request carrying your image is ever made. The page does fetch one thing on demand — a decoder for iPhone HEIC photos, which travels toward you rather than away.
Why does the colour I picked look different in my design tool?
Almost always a display profile. A wide-gamut screen shows sRGB values more saturated than a standard one, so the same hex looks different side by side while the number is identical — and the number is what matters, because that is what ships. The other common cause is that the pixel you clicked was semi-transparent, in which case the panel says so explicitly and the reported colour is the stored one rather than the blend you were looking at.
Why does my palette have fewer swatches than I asked for?
Because near-identical swatches are dropped rather than shown twice. An image with genuinely three colours in it — a flat logo, a two-tone chart — splits into more boxes than it has distinct colours, and those boxes average to the same value. Showing all eight would be padding the answer with repeats. Ask for more swatches on a photograph and you will get more; ask on a flat graphic and you get what is there.
Can I pick a colour from a screenshot of a website?
Yes, and it is the most reliable way to read a colour off a site you cannot inspect. One caveat worth knowing: screenshots of text and thin UI elements are anti-aliased, so the pixels along an edge are blends of the foreground and background rather than either one. Click the middle of a solid area — the interior of a button, not its border — and you will get the real value.
Does it work on GIFs, SVGs, and HEIC photos?
Yes. GIF and SVG are rasterized to pixels first, and iPhone HEIC photos go through a decoder fetched on demand. An SVG is worth a note: it has no pixels of its own until something draws it, so what you sample is the rasterization at the size this page rendered it, and an anti-aliased edge in that render behaves like any other anti-aliased edge. TIFF is the one format that cannot be read here, because no browser ships a TIFF decoder at all.
Where a picked colour goes next
A hex value out of a photo is a starting point, not a finished decision. These take one over.