How do I change a partially transparent image's color in iOS? How do I change a partially transparent image's color in iOS? ios ios

How do I change a partially transparent image's color in iOS?


I have updated the code above to account for retina resolution images:

- (UIImage *) changeColorForImage:(UIImage *)mask toColor:(UIColor*)color {CGImageRef maskImage = mask.CGImage;CGFloat width = mask.scale * mask.size.width;CGFloat height = mask.scale * mask.size.height;CGRect bounds = CGRectMake(0,0,width,height);CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();CGContextRef bitmapContext = CGBitmapContextCreate(NULL, width, height, 8, 0, colorSpace, (CGBitmapInfo)kCGImageAlphaPremultipliedLast);CGContextClipToMask(bitmapContext, bounds, maskImage);CGContextSetFillColorWithColor(bitmapContext, color.CGColor);    CGContextFillRect(bitmapContext, bounds);CGImageRef mainViewContentBitmapContext = CGBitmapContextCreateImage(bitmapContext);CGContextRelease(bitmapContext);return [UIImage imageWithCGImage:mainViewContentBitmapContext scale:mask.scale orientation:UIImageOrientationUp];}


The code in the question is working code. The bug was elsewhere.