@synthesize croppedImage;
- (void)viewDidLoad {
[super viewDidLoad];
NSString *inputPath = [[NSBundle mainBundle] pathForResource:@"images" ofType:@"png"];
NSString *maskPath = [[NSBundle mainBundle] pathForResource:@"Unknown" ofType:@"png"];
UIImage *inputImage = [[UIImage alloc] initWithContentsOfFile:inputPath];
UIImage *mask = [[UIImage alloc] initWithContentsOfFile:maskPath];
UIImage *cutOut = [self maskImage:inputImage withMask:mask];
croppedImage.image = cutOut;
}
- (UIImage*) maskImage:(UIImage *) image withMask:(UIImage *) mask
{
CGImageRef imageReference = image.CGImage;
CGImageRef maskReference = mask.CGImage;
CGImageRef imageMask = CGImageMaskCreate(CGImageGetWidth(maskReference),
CGImageGetHeight(maskReference),
CGImageGetBitsPerComponent(maskReference),
CGImageGetBitsPerPixel(maskReference),
CGImageGetBytesPerRow(maskReference),
CGImageGetDataProvider(maskReference),
NULL, // Decode is null
YES // Should interpolate
);
CGImageRef maskedReference = CGImageCreateWithMask(imageReference, imageMask);
CGImageRelease(imageMask);
UIImage *maskedImage = [UIImage imageWithCGImage:maskedReference];
CGImageRelease(maskedReference);
return maskedImage;
}
Comments
0 B
|👍
/👎
0 B
|👍
/👎