iOS实现毛玻璃效果(无需要第三方)

Phemia ·
更新时间:2024-09-20
· 549 次阅读

本文实例分享两种iOS毛玻璃效果设置的方法,不需要任何第三方,先看效果:

原图:

方法一(iOS8系统方法):

方法二:

下面是示例代码:

#import "ViewController.h" @interface ViewController () { UIImageView *_imageView; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; _imageView = [[UIImageView alloc]initWithFrame:self.view.bounds]; _imageView.image = [UIImage imageNamed:@"1.jpg"]; [self.view addSubview:_imageView]; //方法一:系统方法,iOS8及以上可用 if (!UIAccessibilityIsReduceTransparencyEnabled()) { UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc]initWithEffect:blurEffect]; blurEffectView.frame = _imageView.bounds; [_imageView addSubview:blurEffectView]; } //方法二:Core Image UIImageView *blurImageView = [[UIImageView alloc]initWithFrame:_imageView.bounds]; blurImageView.image = [self blur:[UIImage imageNamed:@"1.jpg"]]; [_imageView addSubview:blurImageView]; } //生成一张毛玻璃图片 - (UIImage*)blur:(UIImage*)theImage { CIContext *context = [CIContext contextWithOptions:nil]; CIImage *inputImage = [CIImage imageWithCGImage:theImage.CGImage]; CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"]; [filter setValue:inputImage forKey:kCIInputImageKey]; [filter setValue:[NSNumber numberWithFloat:15.0f] forKey:@"inputRadius"]; CIImage *result = [filter valueForKey:kCIOutputImageKey]; CGImageRef cgImage = [context createCGImage:result fromRect:[inputImage extent]]; UIImage *returnImage = [UIImage imageWithCGImage:cgImage]; CGImageRelease(cgImage); return returnImage; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end

具体效果和参数自行研究吧!

您可能感兴趣的文章:Android中实现iOS中的毛玻璃效果iOS自定义collectionView实现毛玻璃效果IOS图片设置毛玻璃效果iOS毛玻璃效果的实现及图片模糊效果的三种方法iOS7 毛玻璃特效代码iOS 8使用UIBlurEffect实现毛玻璃特效



IOS 毛玻璃

需要 登录 后方可回复, 如果你还没有账号请 注册新账号