Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Let's say we have this picture:

enter image description here

As you can see, the background color is #2A3D78. The foreground color is #94AEFF. Ultimately, I'd like to get a picture where the background is unchanged, but the foreground becomes #DDDDDD, and that in a smooth way, so the diagonal shadow is altered as well.

Preferably, I'd like to do this within Paint.NET, but if you know another program that does the trick, that'd be awesome as well.

share|improve this question
Does the simple flood fill (paint bucket icon) not work? Make sure you lower the tolerance down from max, and it should get the diagonals too. – Scott Chamberlain Apr 24 '13 at 18:05
No, that would leave the picture really pixelated between the diagonal lines of the shadow of the logo. – Im2be Apr 24 '13 at 18:26
up vote 1 down vote accepted

This can be done in Paint .NET using the Advanced Color Replacement plugin.

  • Unzip the downloaded file and put the DLL into the Effects directory in your Paint .NET installation
  • Start Paint .NET and open the image
  • Set the primary color to DDDDDD (for this example) using the Colors tool window
  • Choose the color-picker tool and right-click on an area that has the existing color to replace.

    enter image description here

  • Choose Effects->Color->Advanced Recoloring...

  • Set Replacement Type to Continous and change the Threshold / Roughness setting until you are happy. You need to be careful here to prevent it from changing the background color as the two colors do not have a lot of contrast.

    enter image description here enter image description here

Note that other programs like Photoshop will probably be capable of better results though.

share|improve this answer
That did the trick :D Thanx a lot :) – Im2be Apr 25 '13 at 13:44
Excellent plugin. Thank you for enlightening me with this answer. +1 – Psyrus Jan 8 '15 at 3:53

What you really need here is a combination of two things:

  1. Photoshop (costly, industry standard for a reason), GIMP (free, kinda lousy), Paint Shop Pro (free trial, usable), or some equivalent editing tool such as Paint.NET - thanks Scott Chamberlain;
  2. A version of your source image which has the elements of the picture on layers of their own.

Without the first, i.e., with only a simple bitmap editor, you won't be able to change the color of the foreground element without either inducing jagginess (pixelation) or messing up other parts of the image, because you can't work on it in isolation.

Without the second, you still can't really work on the foreground element in isolation, because it's blended into the rest of the picture at its edges. If you have the foreground trident (?) on its own layer, then you can change it as you like, and it'll be composed with the background layers to produce a smooth result.

You really can't do this with a simple bitmap editor; you need something with, at minimum, layers and a hue/saturation editing tool, so that you can just recolor the foreground element instead of trying to flood-fill it.

If you can't get a layered source file to work from, then you can probably use the "select contiguous", "magic wand", &c. tool in your chosen image editor to select just the foreground trident, then copy it to a layer of its own and edit it there. You'll probably have to fiddle with the edges a lot to get rid of the background color that creeps in due to the anti-aliasing, though.

The cross-hatched background poses an additional challenge, in that you're going to have a very hard time "lifting" it off the background with the selection tools, and a harder time still getting it separate from the foreground trident. To be honest, you may be better off recreating the image from scratch; to do so would require some knowledge of paths (i.e., vectors), but you'd be able to produce a much nicer result, and would get the extra benefit of being able to further edit it later on.

share|improve this answer
Paint.NET is a layered picture editing tool. It even has read compatibility with .PSD files. – Scott Chamberlain Apr 24 '13 at 21:29
Holy wow, I did not know that; I thought "Paint.NET" was a nickname for the ribbon-UI version of mspaint that comes with Windows 7. Thanks for the pointer to something I really should've already known! – Aaron Miller Apr 24 '13 at 21:33

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .