I have an image which is a white background with a black logo.

The edges of the logo have a range of colors between black and white:

enter image description here

If I want to change the foreground color to green, how do I do it so that the edges are also a blend of green, based on how much black is in each pixel.

This is what I have:

enter image description here

If I also want to change the background color, for example to black, then how do I make each edge pixel somewhere between green and black?

1 Answer 1


One way is to use Colors > Color to Alpha. This will make the white pixels transparent, and the grey pixels semi-transparent.

Then you could engage the Lock Alpha Channel option on that layer (in the Layers panel), and fill it with any colour you want using Edit > Fill with .... For the background create a new layer underneath, and fill with any colour you want.

For example:

enter image description here

  • For the background you can also bucket-fill in Behind mode (after resetting the alpha-lock of course)
    – xenoid
    Commented Sep 14, 2018 at 23:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.