iOS 蒙板,图片叠加显示漏空部分

Posted 爱生活爱代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 蒙板,图片叠加显示漏空部分相关的知识,希望对你有一定的参考价值。

懒惰了一个月了,今天写写项目里遇到的一个问题。

 

图片a 和图片b相互叠加,a图片四周是白色的不规则图形,里面填充黑色。 b图片是一张正常图片。

需求是叠加在一起,要求将b图片根据a图片的黑色形状 扣出来。

 

图a:  图b:

 

扣出来的效果图:

 

 

上代码:

-(UIImage*)maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
    CGImageRef maskRef = maskImage.CGImage;
    CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
                                        CGImageGetHeight(maskRef),
                                        CGImageGetBitsPerComponent(maskRef),
                                        CGImageGetBitsPerPixel(maskRef),
                                        CGImageGetBytesPerRow(maskRef),
                                        CGImageGetDataProvider(maskRef), NULL, false);
    
    CGImageRef sourceImage = [image CGImage];
    CGImageRef imageWithAlpha = sourceImage;
    //add alpha channel for images that don\'t have one (ie GIF, JPEG, etc...)
    //this however has a computational cost
    if (CGImageGetAlphaInfo(sourceImage) == kCGImageAlphaNone) {
//        imageWithAlpha =CopyImageAndAddAlphaChannel(sourceImage);
    }
    
    CGImageRef masked = CGImageCreateWithMask(imageWithAlpha, mask);

    CGImageRelease(mask);
    
        if (sourceImage != imageWithAlpha) {
            CGImageRelease(imageWithAlpha);
        }
    
    UIImage* retImage = [UIImage imageWithCGImage:masked];
    CGImageRelease(masked);
    
    return retImage;
}

 GitHub地址:https://github.com/zhuxinleibandou/-

以上是关于iOS 蒙板,图片叠加显示漏空部分的主要内容,如果未能解决你的问题,请参考以下文章

IOS中的蒙板(Mask)

GIMP做成颜色蒙板

显示自定义 UIButton 上的灰色叠加层

在相机意图中显示叠加层

如何用QT实现在图片上叠加显示文字

滚动时的粘性叠加图像