iOS實現毛玻璃效果

xmnx 9年前發布 | 2K 次閱讀 Objective-C 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;
}

系統方法,iOS8以上
//方法一:系統方法,iOS8及以上可用
    if (!UIAccessibilityIsReduceTransparencyEnabled()) {
        UIBlurEffect *blurEffect = [UIBlurEffecteffectWithStyle:UIBlurEffectStyleDark];
        UIVisualEffectView *blurEffectView = [[UIVisualEffectViewalloc]initWithEffect:blurEffect];
        blurEffectView.frame = _imageView.bounds;
        [_imageView addSubview:blurEffectView];
    }

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