Advertisement
redribben

masking

Jun 1st, 2015
301
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. @synthesize croppedImage;
  2.  
  3.  
  4. - (void)viewDidLoad {
  5.     [super viewDidLoad];
  6.    
  7.     NSString *inputPath = [[NSBundle mainBundle] pathForResource:@"images" ofType:@"png"];
  8.     NSString *maskPath = [[NSBundle mainBundle] pathForResource:@"Unknown" ofType:@"png"];
  9.     UIImage *inputImage = [[UIImage alloc] initWithContentsOfFile:inputPath];
  10.     UIImage *mask = [[UIImage alloc] initWithContentsOfFile:maskPath];
  11.     UIImage *cutOut = [self maskImage:inputImage withMask:mask];
  12.     croppedImage.image = cutOut;
  13. }
  14.  
  15. - (UIImage*) maskImage:(UIImage *) image withMask:(UIImage *) mask
  16. {
  17.     CGImageRef imageReference = image.CGImage;
  18.     CGImageRef maskReference = mask.CGImage;
  19.    
  20.     CGImageRef imageMask = CGImageMaskCreate(CGImageGetWidth(maskReference),
  21.                                              CGImageGetHeight(maskReference),
  22.                                              CGImageGetBitsPerComponent(maskReference),
  23.                                              CGImageGetBitsPerPixel(maskReference),
  24.                                              CGImageGetBytesPerRow(maskReference),
  25.                                              CGImageGetDataProvider(maskReference),
  26.                                              NULL, // Decode is null
  27.                                              YES // Should interpolate
  28.                                              );
  29.    
  30.     CGImageRef maskedReference = CGImageCreateWithMask(imageReference, imageMask);
  31.     CGImageRelease(imageMask);
  32.    
  33.     UIImage *maskedImage = [UIImage imageWithCGImage:maskedReference];
  34.     CGImageRelease(maskedReference);
  35.    
  36.     return maskedImage;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement