zoukankan      html  css  js  c++  java
  • iOS通过CIFilter对图像进行滤镜处理

    在iOS5.0之后,苹果公司提供了可以对图像进行处理的CoreImage框架。

    其中里面有一个CIFilter的滤镜,里面提供了非常强大的滤镜功能。本篇只是说其中部分的方法和使用。其他的功能还是去看下苹果的官方文档更为全面一些。同时,本文参考了该篇博客http://www.cnblogs.com/YouXianMing/p/3719056.html。
    这是主要的代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    //将UIImage转换成CIImage
    CIImage *ciImage = [[CIImage alloc] initWithImage:originImage];
     
    //创建滤镜
    CIFilter *filter = [CIFilter filterWithName:@"CIPhotoEffectChrome" keysAndValues:kCIInputImageKey, ciImage, nil];
     
    //已有的值不改变,其他的设为默认值
    [filter setDefaults];
     
    //获取绘制上下文
    CIContext *context = [CIContext contextWithOptions:nil];
     
    //渲染并输出CIImage
    CIImage *outputImage = [filter outputImage];
     
    //创建CGImage句柄
    CGImageRef cgImage = [context createCGImage:outputImage fromRect:[outputImage extent]];
     
    //获取图片
    UIImage *image = [UIImage imageWithCGImage:cgImage];
     
    //释放CGImage句柄
    CGImageRelease(cgImage);
     
    imageView.image = image;

    这里我使用的滤镜效果是”CIPhotoEffectChrome”效果,当然,CIFilter的滤镜效果可是非常多的,这是官方文档的截图
    屏幕快照 2015-04-02 上午8.35.04
    放个官方文档的网址https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CoreImageFilterReference/#//apple_ref/doc/filter/ci/CIMaskedVariableBlur

    为了方便各个滤镜效果的对比,用了一个picker来选择滤镜
    CoreImage测试

    奉上demo
    CoreImage效果测试

    本文出自 IT985博客 ,转载时请注明出处及相应链接。

  • 相关阅读:
    数据库连接池
    Apache- DBUtils框架学习
    权限表的设计
    Java的I/O对文件的操作
    Java下载文件
    Java连接MySQL数据库
    C#用log4net记录日志
    C#多线程和线程池
    C#利用反射动态调用DLL并返回结果,和获取程序集的信息
    CephRGW 在多个RGW负载均衡场景下,RGW 大文件并发分片上传功能验证
  • 原文地址:https://www.cnblogs.com/yu0806/p/5555842.html
Copyright © 2011-2022 走看看