zoukankan      html  css  js  c++  java
  • 图片的高斯模糊效果

    一:常用的是UIVisualEffectView,

    是在iOS 8 增加的,让我们可以很方便的做出模糊(毛玻璃)效果。

    UIVisualEffectView是一个view,就是对这个view对模糊设置后,把这个view 盖在自己的图片上,

     

    UIVisualEffectView 包含两种特效,一种叫 UIBlurEffect,一种叫 UIVibrancyEffect。他们都是用来模糊的,区别在于 UIBlurEffect 不会对自身这层进行模糊,UIVibrancyEffect 除了模糊,还会透出一点下面内容的颜色,显得更加艳丽。

       UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
        UIVisualEffectView *blurView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
        blurView.frame = myView.bounds;
        [myView addSubview:blurView];

    UIBlurEffect有三个参数:

    • UIBlurEffectStyleExtraLight 特别亮

    • UIBlurEffectStyleLight 有点亮

    • UIBlurEffectStyleDark 有点黑

    二、对 UIImage 进行模糊

    如果要兼容 iOS7,用不了 UIVisualEffectView 怎么办?那就用 CIFilter 滤镜对 UIImage 进行模糊。CIFilter 就像 Gaussian Blur(高斯模糊),是对图片直接进行处理。

    -(UIImage *)convertToBlurImage:(UIImage *)image{
        CIFilter *gaussianBlurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
        [gaussianBlurFilter setDefaults];
        CIImage *inputImage = [CIImage imageWithCGImage:[image CGImage]];
        [gaussianBlurFilter setValue:inputImage forKey:kCIInputImageKey];
        [gaussianBlurFilter setValue:@5 forKey:kCIInputRadiusKey];
        CIImage *outputImage = [gaussianBlurFilter outputImage];
        CIContext *context   = [CIContext contextWithOptions:nil];
        CGImageRef cgimg     = [context createCGImage:outputImage fromRect:[inputImage extent]];  // note, use input image extent if you want it the same size, the output image extent is larger
        UIImage *convertedImage = [UIImage imageWithCGImage:cgimg];
        return convertedImage;
    }

    其中 [gaussianBlurFilter setValue:@5 forKey:kCIInputRadiusKey]; 就是用来设置模糊半径的。

  • 相关阅读:
    C++中内联函数
    剑指offer62:二插搜索树的第k个节点
    剑指offer63:数据流中的中位数
    剑指offer64:滑动窗口的最大值
    剑指offer65:矩阵中的路径
    剑指offer66:机器人的活动范围
    kmean算法C++实现
    【数组】Minimum Size Subarray Sum
    【数组】Missing Number
    【数组】Product of Array Except Self
  • 原文地址:https://www.cnblogs.com/liuwenqiang/p/5877017.html
Copyright © 2011-2022 走看看