首页 > 代码库 > 图片的高斯模糊效果
图片的高斯模糊效果
一:常用的是UIVisualEffectView,
是在iOS 8 增加的,让我们可以很方便的做出模糊(毛玻璃)效果。
UIVisualEffectView是一个view,就是对这个view对模糊设置后,把这个view 盖在自己的图片上,
UIVisualEffectView 包含两种特效,一种叫 UIBlurEffect,一种叫 UIVibrancyEffect。他们都是用来模糊的,区别在于 UIBlurEffect 不会对自身这层进行模糊,UIVibrancyEffect 除了模糊,还会透出一点下面内容的颜色,显得更加艳丽。
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; UIVisualEffectView *blurView = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; blurView.frame = myView.bounds; [myView addSubview:blurView];
UIBlurEffect有三个参数:
UIBlurEffectStyleExtraLight 特别亮
UIBlurEffectStyleLight 有点亮
UIBlurEffectStyleDark 有点黑
二、对 UIImage 进行模糊
如果要兼容 iOS7,用不了 UIVisualEffectView 怎么办?那就用 CIFilter 滤镜对 UIImage 进行模糊。CIFilter 就像 Gaussian Blur(高斯模糊),是对图片直接进行处理。
-(UIImage *)convertToBlurImage:(UIImage *)image{ CIFilter *gaussianBlurFilter = [CIFilter filterWithName:@"CIGaussianBlur"]; [gaussianBlurFilter setDefaults]; CIImage *inputImage = [CIImage imageWithCGImage:[image CGImage]]; [gaussianBlurFilter setValue:inputImage forKey:kCIInputImageKey]; [gaussianBlurFilter setValue:@5 forKey:kCIInputRadiusKey]; CIImage *outputImage = [gaussianBlurFilter outputImage]; CIContext *context = [CIContext contextWithOptions:nil]; CGImageRef cgimg = [context createCGImage:outputImage fromRect:[inputImage extent]]; // note, use input image extent if you want it the same size, the output image extent is larger UIImage *convertedImage = [UIImage imageWithCGImage:cgimg]; return convertedImage;}
其中 [gaussianBlurFilter setValue:@5 forKey:kCIInputRadiusKey];
就是用来设置模糊半径的。
图片的高斯模糊效果
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。