模糊效果(毛玻璃):对效果视图做了一个模糊的效果,即在目标视图上添加一个模糊视图.
方法一 系统方法,这种方法有一定的局限性,不能设置毛玻璃的层次,效果,且在某些手机贴膜下会出现毛玻璃失效的情况
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];
网友评论