iOS實現毛玻璃效果
使用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];
}
上述兩種方法可以配合使用,效果可以增加光亮度
本文由用戶 xmnx 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!