iOS圖片模糊效果的兩種實(shí)現(xiàn)方法:
1.CoreImage的模糊濾鏡
UIImage * sourceImage = [UIImage imageNamed:@"imageName"];
CIImage * ciImage = [[CIImage alloc] initWithImage:sourceImage];
CIFilter * blurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
//將圖片輸入到濾鏡中
[blurFilter setValue:ciImage forKey:kCIInputImageKey];
//設(shè)置模糊程度
[blurFilter setValue:@(5) forKey:@"inputRadius"];
NSLog(@"查看blurFilter的屬性--- %@",blurFilter.attributes);
//將處理之后的圖片輸出
CIImage * outCiImage = [blurFilter valueForKey:kCIOutputImageKey];
CIContext * context = [CIContext contextWithOptions:nil];
*//獲取CGImage句柄*
*CGImageRef outCGImageRef = [context createCGImage:outCiImage fromRect:[outCiImage extent]];*
//獲取到最終圖片
UIImage * resultImage = [UIImage imageWithCGImage:outCGImageRef];
//釋放句柄
CGImageRelease(outCGImageRef);
UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.width * sourceImage.size.height / sourceImage.size.width)];
[imageView setImage:resultImage];
[self.view addSubview:imageView];
2.iOS系統(tǒng)自帶的高斯模糊效果(只能在iOS8以上使用)
UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:blur];
effectView.alpha = 0.7;
effectView.frame = bgImg.frame;
[bgImg addSubview:effectView];