Masking and reverse masking in Imageview ios

I have one image containing an image. And one mask that contains the shape of a rabbit. I have one code that gives below result.

- (UIImage*)mynewmaskImage:(UIImage *)image withMask:(UIImage *)maskImage { CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGImageRef maskImageRef = [maskImage CGImage]; // create a bitmap graphics context the size of the image CGContextRef mainViewContentContext = CGBitmapContextCreate (NULL,320, 380, 8, 0, colorSpace,(CGBitmapInfo) kCGImageAlphaPremultipliedLast); CGColorSpaceRelease(colorSpace); if (mainViewContentContext==NULL) return NULL; CGFloat ratio = 0; ratio = 320/ image.size.width; if(ratio * image.size.height < 380) { ratio = 380/ image.size.height; } CGRect rect1 = {{0, 0}, {320,380}}; CGRect rect2 = {{-((image.size.width*ratio)-320)/2 , -((image.size.height*ratio)-380)/2}, {image.size.width*ratio, image.size.height*ratio}}; // CGContextDrawImage(mainViewContentContext, rect2, image.CGImage); CGContextClipToMask(mainViewContentContext, rect1, maskImageRef); CGContextDrawImage(mainViewContentContext, rect2, image.CGImage); CGImageRef newImage = CGBitmapContextCreateImage(mainViewContentContext); CGContextRelease(mainViewContentContext); UIImage *theImage = [UIImage imageWithCGImage:newImage]; CGImageRelease(newImage); // return the image return theImage;} 

The above code gives this result. enter image description here

But I want to get the following result (e.g. reverse masking). enter image description here

How is this possible. Please help me. Thank.

+3
ios objective-c uiimageview mask
Jan 24 '15 at 4:41
source share
1 answer

You should view blendMode. Try something like this:

 [rabbitImage drawInRect:rect blendMode:kCGBlendModeDestinationOut alpha:1.0]; 
0
Jun 02 '15 at 12:54 on
source share



All Articles