[iOS]|[iOS] 设置毛玻璃效果 (UIBlurEffect)与高斯模糊

iOS 8 后更新的API,使用 UIBlurEffect 类和 UIVisualEffectView 类添加毛玻璃特效更加便捷,高效。

//创建显示图片 UIImageView *imageView = [[UIImageView alloc] init]; /**毛玻璃特效类型 *UIBlurEffectStyleExtraLight, *UIBlurEffectStyleLight, *UIBlurEffectStyleDark */ UIBlurEffect *blurEffect = [UIBlurEffecteffectWithStyle:UIBlurEffectStyleLight]; //毛玻璃视图 UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; //添加到要有毛玻璃特效的控件中 effectView.frame = imageView.bounds; [imageView addSubview:effectView]; //设置模糊透明度 effectView.alpha = 0.5f;

【[iOS]|[iOS] 设置毛玻璃效果 (UIBlurEffect)与高斯模糊】iOS 7.0 的系统类
UIImageView *backView = [[UIImageView alloc] initWithFrame:self.view.bounds]; backView.image = [UIImage imageNamed:@"123.jpg"]; [self.view addSubview:backView]; UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:self.view.bounds]; toolbar.barStyle = UIBarStyleBlackTranslucent; [backView addSubview:toolbar]; toolbar.alpha = 0.5;

高斯模糊效果(滤镜)
// 1、创建输入图像,CIImage类型,这里使用一个网上图片。 CIImage *inputImage = [CIImage imageWithContentsOfURL:[NSURL URLWithString:@"http://echo-image.qiniucdn.com/FtPAdyCH-SlO-5xEe009AFE-N0EF?imageMogr2/auto-orient/quality/100%7CimageView2/4/w/640/q/100"]]; // 2、构建一个滤镜图表 CIColor *sepiaColor = [CIColor colorWithRed:0.76 green:0.65 blue:0.54]; // 2.1 先构建一个 CIColorMonochrome 滤镜,并配置输入图像与滤镜参数 CIFilter *monochromeFilter = [CIFilter filterWithName:@"CIColorMonochrome" withInputParameters:@{@"inputColor" : sepiaColor,@"inputIntensity":@1.0}]; [monochromeFilter setValue:inputImage forKey:@"inputImage"]; // 通过KVC来设置输入图像 // 2.2 先构建一个 CIVignette 滤镜 CIFilter *vignetteFilter = [CIFilter filterWithName:@"CIVignette" withInputParameters:@{@"inputRadius" : @2.0,@"inputIntensity" :@1.0}]; [vignetteFilter setValue:monochromeFilter.outputImage forKey:@"inputImage"]; // 以monochromeFilter的输出来作为输入// 3、得到一个滤镜处理后的图片,并转换至 UIImage // 创建一个 CIContext CIContext *ciContext = [CIContext contextWithOptions:nil]; // 将 CIImage 过渡到 CGImageRef 类型 CGImageRef cgImage = [ciContext createCGImage:vignetteFilter.outputImage fromRect:inputImage.extent]; // 最后转换为 UIImage 类型 UIImage *uiImage = [UIImage imageWithCGImage:cgImage]; UIImageView *imgaeView = [[UIImageView alloc]initWithImage:uiImage]; imgaeView.frame = self.view.frame; [self.view addSubview:imgaeView];

    推荐阅读