9行代码实现高斯模糊

作者: 小可是我 | 来源:发表于2016-03-07 00:18 被阅读0次

    我司产品说要在我司APP里搞一个高斯模糊的效果,之前没做过,就只能先查资料了。
      先是查到一个很nubility的三方类GPUImage,但是看了之后感觉太过繁琐,我只是想简单的实现一个高斯模糊。后听我们组长说直接使用系统方法就可以实现。再一查,果然,使用CIImage的话,九行代码就解决了。

    CIContext *context = [CIContext contextWithOptions:nil];
    CIImage *inputImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"xiaoke"]];
    
    // create gaussian blur filter
    CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"];
    [filter setValue:inputImage forKey:kCIInputImageKey];
    [filter setValue:[NSNumber numberWithFloat:4] forKey:@"inputRadius"];//设置模糊度
    
    // blur image
    CIImage *result = [filter valueForKey:kCIOutputImageKey];
    CGImageRef cgImage = [context createCGImage:result fromRect:inputImage.extent];
    UIImage *blurImage = [UIImage imageWithCGImage:cgImage];
            
    CGImageRelease(cgImage);
    

    效果如下:

    IMG_2018.PNG

    相关文章

      网友评论

        本文标题:9行代码实现高斯模糊

        本文链接:https://www.haomeiwen.com/subject/bmmakttx.html