I have a grayscale image which I want to use for drawing Cocoa controls. The image has various levels of gray. Where it is darkest, I want it to draw a specified tint color dark
The above solution didn't work for me. But this much easier solution works great for me
- (NSImage *)imageTintedWithColor:(NSColor *)tint
{
NSImage *image = [self copy];
if (tint) {
[image lockFocus];
[tint set];
NSRect imageRect = {NSZeroPoint, [image size]};
NSRectFillUsingOperation(imageRect, NSCompositeSourceIn);
[image unlockFocus];
}
return image;
}
For a more fine grained, you can use a polynomial color approach, using the approach that I suggested in the following: How can I display the spinning NSProgressIndicator in a different color?