CoreImage 中的模糊滤镜
// 原始图片
UIImage *image = [UIImage imageNamed:@"girl"];
// CIImge图片输入
CIImage *ciImage = [[CIImage alloc] initWithImage:image];
// CIFilter高斯模糊
CIFilter *blurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
// 将图片输入到滤镜中
[blurFilter setValue:ciImage forKey:kCIInputImageKey];
// 设置模糊程度
[blurFilter setValue:@5 forKey:@"inputRadius"];
// 将处理好的图片输出
CIImage *outCiImage = [blurFilter valueForKey:kCIOutputImageKey];
// CIContext
CIContext *context = [CIContext contextWithOptions:nil];
// 获取CGImage句柄
CGImageRef outCGImage = [context createCGImage:outCiImage fromRect:[outCiImage extent]];
// 最终获取到的图片
UIImage *blurImage = [UIImage imageWithCGImage:outCGImage];
// 释放CGImage句柄
CGImageRelease(outCGImage);
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 439 / 2.f, 584 / 2.f)];
imageView.image = blurImage;
imageView.center = self.view.center;
[self.view addSubview:imageView];
UIVisualEffectView 模糊效果
// 图片背景
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"normal"]];
scrollView.contentSize = imageView.image.size;
scrollView.bounces = NO;
[scrollView addSubview:imageView];
[self.view addSubview:scrollView];
// 添加模糊效果视图
UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]];
effectView.frame = CGRectMake(0, 100, 320, 200);
[self.view addSubview:effectView];
// 为effectView添加镂空视图
UIVisualEffectView *subEffectView = [[UIVisualEffectView alloc] initWithEffect:[UIVibrancyEffect effectForBlurEffect:(UIBlurEffect *)effectView.effect]];
subEffectView.frame = effectView.bounds;
[effectView.contentView addSubview:subEffectView];
// 添加文字
UILabel *label = [[UILabel alloc] initWithFrame:effectView.bounds];
label.text = @"HuangJian";
label.font = [UIFont systemFontOfSize:42.f];
label.textAlignment = NSTextAlignmentCenter;
// 将label添加到镂空视图上
[subEffectView.contentView addSubview:label];
参考文章: iOS 模糊效果的使用