Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Hope it is helpful</p> <p>Step 1: Create a mask without any alpha channel.</p> <p>Step 2: Create a invert mask by following method</p> <pre><code>- (UIImage*)createInvertMask:(UIImage *)maskImage withTargetImage:(UIImage *) image { CGImageRef maskRef = maskImage.CGImage; CGBitmapInfo bitmapInfo = kCGImageAlphaNone; CGColorRenderingIntent renderingIntent = kCGRenderingIntentDefault; CGImageRef mask = CGImageCreate(CGImageGetWidth(maskRef), CGImageGetHeight(maskRef), CGImageGetBitsPerComponent(maskRef), CGImageGetBitsPerPixel(maskRef), CGImageGetBytesPerRow(maskRef), CGColorSpaceCreateDeviceGray(), bitmapInfo, CGImageGetDataProvider(maskRef), nil, NO, renderingIntent); CGImageRef masked = CGImageCreateWithMask([image CGImage], mask); CGImageRelease(mask); CGImageRelease(maskRef); return [UIImage imageWithCGImage:masked]; } </code></pre> <p>Step 3: Set the invert mask to a UIView by following method</p> <pre><code>- (void)maskWithImage:(UIImage*) maskImage TargetView:(UIView*) targetView { CALayer *_maskingLayer = [CALayer layer]; _maskingLayer.frame = targetView.bounds; [_maskingLayer setContents:(id)[maskImage CGImage]]; [targetView.layer setMask:_maskingLayer]; } </code></pre> <p>Finished.</p> <p>How to call?</p> <pre><code>UIImage* targetImage = [UIImage imageNamed:@"sky_bg.png"]; UIImage* mask = [UIImage imageNamed:@"mask01.png"]; UIImage* invertMask = [self createInvertMask:mask withTargetImage:targetImage]; [self maskWithImage:invertMask TargetView:targetview]; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload