Quote:
Originally Posted by dljeffery
That sample code you linked to looks like a good overview, but make sure you release your CGImageRefs returned by CGImageMaskCreate and CGImageCreateWithMask (which it doesn't do in the sample code)!
Code:
UIImage *maskedImage = [UIImage imageWithCGImage:masked];
CGImageRelease(mask);
CGImageRelease(masked);
return maskedImage;
|
You're right, basically now I have this:
Code:
//mask images
- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
UIImage *testMaskImage = [UIImage imageNamed: @"mask.png"];
CGImageRef maskRef = testMaskImage.CGImage;
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
CGImageRelease(mask);
UIImage* retImage= [UIImage imageWithCGImage:masked];
CGImageRelease(masked);
return retImage;
}
But how do you call it?