Skip to content

Instantly share code, notes, and snippets.

@deeplovepan
Created July 15, 2012 11:15
Show Gist options
  • Save deeplovepan/3116317 to your computer and use it in GitHub Desktop.
Save deeplovepan/3116317 to your computer and use it in GitHub Desktop.
mask image
- (UIImage*) maskImage:(UIImage *)image
withMask:(UIImage *)maskImage
{
CGImageRef imageRef = image.CGImage;
CGImageRef maskRef = maskImage.CGImage;
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef),
NULL, // decode should be NULL
FALSE // shouldInterpolate
);
CGImageRef masked = CGImageCreateWithMask(imageRef, mask);
CGImageRelease(mask);
UIImage *maskedImage = [UIImage imageWithCGImage:masked];
CGImageRelease(masked);
return maskedImage;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIImage *imageToCrop = [UIImage imageNamed:@"peggy.jpg"];
CGRect rect = CGRectMake(615, 20, 220, 220);
CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect);
UIImage *image = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
UIImage *newImage = [self maskImage:image withMask:[UIImage imageNamed:@"mask.png"]];
UIImageView *imageView = [[UIImageView alloc] initWithImage:newImage];
[self.view addSubview:imageView];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment