Image Color Changer
Replace one colour in a picture with another. Pick the colour off the image, set how far the match reaches, and keep the shading so the result still looks like an object rather than a flat cut-out.
Drag & drop a file here, Ctrl+V to paste, oror
Runs in your browser
The Tolerance Names Its Space
A tolerance of 20 covers a different set of pixels in CIELAB than it does in sRGB, so the page states which one produced the count. CIELAB is closer to what your eye calls "the same colour"; sRGB is literal channel distance.
Shading Survives
Keep-shading mode takes the new colour's hue and leaves each pixel's own lightness alone, so a folded shirt stays folded. Flat mode paints every matched pixel identically, which is what a logo or a solid background wants.
Privacy-First
Every pixel is read and rewritten by the Canvas API on your own device. Nothing is uploaded, nothing is stored, and no account is needed. Close the tab and the image is gone.
How it works
Picking the colour beats typing it
A colour that looks flat almost never is. A white background out of a camera is a thousand near-whites, and a red logo saved as JPEG has a halo of off-reds around every edge. Typing #ffffff catches the one exact value and leaves the rest, which is why the result looks moth-eaten. Click the eyedropper, click the area you mean, and the tool takes the real value that is actually in the file rather than the one you assumed was there.
Tolerance is a distance, and distance needs a space
Tolerance decides how far from the picked colour a pixel can sit and still count as the same colour. That distance can be measured two ways. CIELAB delta-E is built so that one unit is roughly one just-noticeable difference, so it groups shades the way your eye does. sRGB distance is the straight line between the three channel numbers, which is faster and more literal but will happily treat two greens you cannot tell apart as far away. The same tolerance number means different pixel sets in the two, so this page prints the space next to every count instead of leaving it to be guessed.
Flat colour is rarely what a photo wants
Painting every matched pixel the identical new colour is correct for a logo, an icon or a solid backdrop. On a photograph it destroys the object: a blue jumper becomes a blue silhouette, because the folds were made of lightness differences that have just been flattened. Keep-shading mode takes only the hue and saturation of the new colour and leaves each pixel with the lightness it already had, so the shadows, the highlights and the fabric texture come through the change intact. Not every lightness can hold every colour - a very dark pixel cannot be a bright yellow - so where sRGB will not stretch that far, the tool gives up some of the colour rather than the lightness, and reports the largest lightness it had to move.
Hard edges and transparent pixels
A hard tolerance cut leaves a fringe of unreplaced pixels along every edge, because anti-aliasing put half-way colours there. The soft edge control extends the match past the tolerance and blends those pixels part of the way, and they are reported as blended rather than replaced, because they were not. Fully transparent pixels are skipped entirely and counted separately: a pixel with zero alpha carries whatever channel values happened to be left in the buffer, so matching it would be inventing a colour that is not visible in the picture.