博客> 使用CIContext 进行图片的模糊化处理
使用CIContext 进行图片的模糊化处理
2017-11-24 06:21 评论:0 阅读:96 lvhahaha
滤镜 模糊图片

CIContext 属于coreImage 框架下的一个类属。对于图片的处理,可以使用 CIContext 是一个对象,通过它Core Image可以绘制一个CIFilter产生的结果。一个Core Image Context可以基于CPU或GPU。

说明:

  1. 创建一个CIContext对象。这个方法你可以在iOS上使用。
  2. 创建一个CIImage对象. 你可以从多种来源创建一个CIImage对象,不日URL。
  3. 创建滤镜,并设置其输入参数。
  4. 获得输出图像,输出图像是一个描述如何生成图像的配方(这里的配方是描述如何制作一道菜的配方,不是点菜的菜谱)。图像还没有被渲染出来。
  5. 渲染CIImage,得到CGImageRef,CGImageRef是可以直接展示或者保存到文件中的。

       _ciContext = [CIContext contextWithOptions:nil];
    CIImage *sourceImage = [CIImage imageWithCGImage:rawImage.CGImage];
    
    CIFilter* gaussianBlur = [CIFilter filterWithName:@"CIGaussianBlur"];
    if (gaussianBlur)
    {
        [gaussianBlur setValue:sourceImage forKey:kCIInputImageKey];
        [gaussianBlur setValue:[NSNumber numberWithFloat:5.0] forKey:@"inputRadius"];
        CIImage *gaussianBlurResult = [gaussianBlur valueForKey:kCIOutputImageKey];
    
        CGImageRef cgImage = [_ciContext createCGImage:gaussianBlurResult fromRect:[sourceImage extent]];
        blurredImage = [UIImage imageWithCGImage:cgImage];
        CGImageRelease(cgImage);

    } 这就可以做一个模糊化的滤镜处理的图片。

收藏
2
sina weixin mail 回到顶部