I have a texture and I want to "colorize" it with a given color, lets say cyan (
#00ffff) or purple (
#800080). What I want to do, is get all the pixel values from the texture, and remove the color and keep the "brightness" and "saturation" and apply to the desired color. There is a tool in GIMP to do this called Colorize (
Colors -> Colorize.. while editing), I made an example below.
This is will all be done in a shader (GLSL), although this is probably a general algorithm.