当前位置: 移动技术网 > 移动技术>移动开发>IOS > iOS实现毛玻璃效果(无需要第三方)

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

2019年07月24日  | 移动技术网移动技术  | 我要评论

本文实例分享两种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 

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网