首页 > 代码库 > iOS 蒙板,图片叠加显示漏空部分

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 蒙板,图片叠加显示漏空部分