使用core image
//生成一张毛玻璃图片
- (uiimage *)blur:(uiimage *)theimage
{
cicontext *context = [cicontextcontextwithoptions:nil];
ciimage *inputimage = [ciimageimagewithcgimage:theimage.cgimage];
cifilter *filter = [cifilterfilterwithname:@"cigaussianblur"];
[filter setvalue:inputimageforkey:kciinputimagekey];
[filter setvalue:[nsnumbernumberwithfloat:15.0]forkey:@"inputradius"];//其中数值是模糊度(3~30,越大越模糊)
ciimage *result = [filtervalueforkey:kcioutputimagekey];
cgimageref cgimage = [contextcreatecgimage:resultfromrect:[inputimageextent]];
uiimage *returnimage = [uiimageimagewithcgimage:cgimage];
cgimagerelease(cgimage);
return returnimage;
- (uiimage *)blur:(uiimage *)theimage
{
cicontext *context = [cicontextcontextwithoptions:nil];
ciimage *inputimage = [ciimageimagewithcgimage:theimage.cgimage];
cifilter *filter = [cifilterfilterwithname:@"cigaussianblur"];
[filter setvalue:inputimageforkey:kciinputimagekey];
[filter setvalue:[nsnumbernumberwithfloat:15.0]forkey:@"inputradius"];//其中数值是模糊度(3~30,越大越模糊)
ciimage *result = [filtervalueforkey:kcioutputimagekey];
cgimageref cgimage = [contextcreatecgimage:resultfromrect:[inputimageextent]];
uiimage *returnimage = [uiimageimagewithcgimage:cgimage];
cgimagerelease(cgimage);
return returnimage;
}
系统方法,ios8以上
//方法一:系统方法,ios8及以上可用
if (!uiaccessibilityisreducetransparencyenabled()) {
uiblureffect *blureffect = [uiblureffecteffectwithstyle:uiblureffectstyledark];
uivisualeffectview *blureffectview = [[uivisualeffectviewalloc]initwitheffect:blureffect];
blureffectview.frame = _imageview.bounds;
[_imageview addsubview:blureffectview];
if (!uiaccessibilityisreducetransparencyenabled()) {
uiblureffect *blureffect = [uiblureffecteffectwithstyle:uiblureffectstyledark];
uivisualeffectview *blureffectview = [[uivisualeffectviewalloc]initwitheffect:blureffect];
blureffectview.frame = _imageview.bounds;
[_imageview addsubview:blureffectview];
}
上述两种方法可以配合使用,效果可以增加光亮度