iOS 毛玻璃效果(Mosaic)

模糊效果(毛玻璃):对效果视图做了一个模糊的效果,即在目标视图上添加一个模糊视图.

方法一 系统方法,这种方法有一定的局限性,不能设置毛玻璃的层次,效果,且在某些手机贴膜下会出现毛玻璃失效的情况

UIVisualEffect:在ios8之后,系统用于添加页面效果的类,本身是一个抽象类,必须使用它的子类.它的子类有:UIBlurEffect:模糊效果;UIVibrancyEffect :明亮效果.

UIVisualEffectView:用于展示特殊页面效果的视图

方法二 使用系统的CoreImage框架绘制一张图片

UIImage * image = 原始图片;

CIContext * context  = [CIContext contextWithOptions:nil];//创建绘制空间

CIImage * sourceImage = [CIImage imageWithCGImage:image.CGImage];//将图片转换成CIImage

///图片仿射滤镜

CIFilter * clamp = [CIFilter filterWithName:@"CIAffineClamp"];//设置绘制类型

[clamp setValue:sourceImage forKey:kCIInputImageKey];//设置要绘制的图片

CIImage *clampResult = [clamp valueForKey:kCIOutputImageKey];

///高斯模糊滤镜

CIFilter* gaussianBlur  = [CIFilter filterWithName:@"CIGaussianBlur"];

[gaussianBlur setValue:clampResult forKey:kCIInputImageKey];

[gaussianBlur setValue:[NSNumber numberWithFloat:50]  forKey:@"inputRadius"];//设置模糊值

CIImage * gaussianBlurResult = [gaussianBlur valueForKey:kCIOutputImageKey];

///转化获取图片

CGImageRef cgImage = [context createCGImage:gaussianBlurResult fromRect:[sourceImage extent]];

UIImage * resultImage =  [UIImage imageWithCGImage:cgImage];

你可能感兴趣的:(iOS 毛玻璃效果(Mosaic))