标签:filter 效果 CIImage frame toolbar backview 毛玻璃 effectview
iOS端毛玻璃效果大致有以下四种方式
1.UIToolbar 7.0之前
2.UIBlurEffect 8.0开发的接口
3.CoreImage框架下CIFilter滤镜来做
4. 通过Accelerate.framework框架计算RGB色滴值的方式
1.UIToolbar
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0,0,backview.frame.size.width,backview.frame.size.height)];
/*
UIBarStyleDefault 灰白色
UIBarStyleBlack 纯黑色 不设置透明度看不见
UIBarStyleBlackOpaque 纯黑色
UIBarStyleBlackTranslucent 纯黑色
*/
toolbar.barStyle = UIBarStyleBlackTranslucent;
toolbar.alpha = 0.67;
[backview addSubview:toolbar];
无论是灰白还是纯黑效果都不佳。
2.UIBlurEffect
UIBlurEffect *blureffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
UIVisualEffectView *effectview = [[UIVisualEffectView alloc]initWithEffect:blureffect];
effectview.frame = CGRectMake(0,0,backview.frame.size.width,backview.frame.size.height);
effectview.alpha = 0.7f;
[backview addSubview:effectview];
3.CoreImage
获取上下文
CIContext *context = [CIContext contextWithOptions:nil];
//把uiimage转换成CIImage
CIImage *ciImage = [CIImage imageWithCGImage:[UIImage imageNamed:@"timg-2.jpeg"].CGImage];
//滤镜
/*
CIBoxBlur,**
** CIDiscBlur,**
** CIGaussianBlur,**
** CIMaskedVariableBlur,**
** CIMedianFilter,**
** CIMotionBlur,**
** CINoiseReduction,**
** CIZoomBlur**
*/
CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"];
//设置输入属性InputImage
[filter setValue:ciImage forKey:kCIInputImageKey];
//设置模糊程度inputRadius
[filter setValue:@(5) forKey: @"inputRadius"];
//设置输出属性
CIImage *result = [filter valueForKey:kCIOutputImageKey];
//将加过滤镜的图片输出
CGImageRef outImage = [context createCGImage: result fromRect:ciImage.extent];
//转换成uiimage
UIImage * blurImage = [UIImage imageWithCGImage:outImage];
backview.image = blurImage;
//
CGImageRelease(outImage);
第四种方式
小马哥的第三方库MCBlur库就是通过计算的方式
MCBlur
有兴趣可以去看看
标签:filter,效果,CIImage,frame,toolbar,backview,毛玻璃,effectview 来源: https://blog.csdn.net/qq_30211165/article/details/101368588
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。