Given a CG Image mask, fill it with color.- (void) fillMask: (CGImageRef) mask withColor: (UIColor *) color atOffset: (CGPoint) offset { if (color == nil) color = [UIColor purpleColor]; // everybody loves purple CGContextRef context = UIGraphicsGetCurrentContext (); CGSize size = self.bounds.size; CGContextSaveGState (context); { CGContextTranslateCTM (context, offset.x, offset.y); // Account for retina-sized graphics. CGContextScaleCTM (context, size.width / CGImageGetWidth(mask), size.height / CGImageGetHeight(mask)); CGRect rect = { {0.0, 0.0}, { CGImageGetWidth(mask), CGImageGetHeight(mask) } }; CGContextClipToMask (context, rect, mask); [color set]; UIRectFill (rect); } CGContextRestoreGState (context); } // fillMask