9行代码实现高斯模糊

我司产品说要在我司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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容