I have a greyscale gem top view.
(PNG format, so has alpha component)
The easiest way to do it is to draw the image into an RGB-colorspaced CGBitmapContext, use CGContextSetBlendMode to set kCGBlendModeColor, and then draw over it with a solid color (e.g. with CGContextFillRect).
CGContextSetBlendMode
kCGBlendModeColor
CGContextFillRect