Change a logo's colour

Every pixel is remapped locally — this page has no server to send to.

Sample the fill, type the new hex. Flat colour is selected by one radius, written exactly, and the soft edge follows it; an indexed PNG keeps its palette.

Open an image, then pick the colour you want changed.

Open a logo, then tap the fill colour you want changed and type the new hex in To.

Drop an image here, or browse for one

JPG, PNG, WebP and GIF decode in every browser; BMP, TIFF and ICO open where yours knows them, and a TIFF usually only does in Safari. HEIC pulls a codec the first time one arrives.

Nothing to hand?

Sampled
#be241f → #00999d
Coverage
20.9% of the frame
One frame, one selection, and the number that decides it. The paint rotates onto a teal hue at the lightness it already had, so every highlight and shadow in it survives. The brick, the tarmac and the jacket are outside the selection and are the pixels they arrived as. Every figure here is computed by the same function the tool runs on a photograph.

Flat art wants a different opening

The front page is set up for photographs: three tolerances and a hue shift that keeps shading. A logo has no shading to keep, so this door opens with the ΔE radius metric, absolute replace and lightness not kept, which writes the typed colour onto the solid fill. The receipt then reads “exact” wherever sRGB can show the target.

When the file is an indexed PNG the recolour is not an image operation at all: the palette table is rewritten and every compressed pixel byte is copied. The export confirmation proves it with three checks — file size, bytes outside the table, and the table's checksum.

Where a logo recolour goes wrong

  1. A JPG logo carries compression noise around every edge; widen the radius a little, or start from the PNG original if there is one.
  2. Gradients are not flat fills; use hue shift for them, or the colour variants page for a set.

Questions people bring to this page

Why is the selection one radius here instead of three sliders?
A logo is flat colour. “This colour and anything within a whisker of it” is the whole instruction, and one Euclidean radius in OKLab (ΔE_OK) says exactly that. Three separate bands are for photographs, where a surface's light and shadow spread differently in each direction.
Will the antialiased edge go grey or fringed?
No. Edge pixels are partly the fill and partly the background; the soft band gives them a partial weight, so they move partly towards the new colour. That keeps the edge smooth. Absolute replace is the opening mode, so the fill lands on the typed hex exactly where the logo is solid.
My logo is a PNG with a palette. Does it stay one?
Yes. If the file is an indexed PNG, the Save as list opens on “Indexed PNG, palette rewritten”: only the colour table is changed and every pixel index is copied untouched, so the file stays the same size. The Palette panel shows the table itself, entry by entry, for direct edits.
Is transparency kept?
In PNG and WebP, yes — transparent pixels are never a colour to remap and are carried through. A JPG has no transparency, so the rail asks which colour to flatten it onto, white by default.

Next door