首页 > 代码库 > 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 蒙板,图片叠加显示漏空部分
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。