CoreImage框架基本应用

来源:互联网 发布:sql case when用法 编辑:程序博客网 时间:2024/05/01 05:58

Core Image是一个很强大的框架。
它可以让你简单地应用各种滤镜来处理图像,比如修改鲜艳程度, 色泽, 或者曝光。 
它利用GPU(或者CPU,取决于客户)来非常快速、甚至实时地处理图像数据和视频的帧。
多个Core Image滤镜可以叠加在一起,从而可以一次性地产生多重滤镜效果。这种多重滤镜的优点在于它可以生成一个改进的滤镜,从而一次性的处理图像达到目标效果,而不是对同一个图像顺序地多次应用单个滤镜。每一个滤镜都有属于它自己的参数。这些参数和滤镜信息,比如功能、输入参数等都可以通过程序来查询。用户也可以来查询系统从而得到当前可用的滤镜信息。
到目前为止,Mac上只有一部分Core Image滤镜可以在iOS上使用。但是随着这些可使用滤镜的数目越来越多,API可以用来发现新的滤镜属性。

CIImage. 这个类保存图像数据。它可以从UIImage、图像文件、或者是像素数据中构造出来。
CIFilter. 滤镜类包含一个字典结构,对各种滤镜定义了属于他们各自的属性。滤镜有很多种,比如鲜艳程度滤镜,色彩反转滤镜,剪裁滤镜等等。

    _imageView = [[UIImageView alloc] initWithFrame:self.view.bounds];
    _imageView.image = [UIImage imageNamed:@"back2.jpg"];
    [self.view addSubview:_imageView];
    //把UIImage转换成滤镜可以操作的CIImage
    CIImage* image = [CIImage imageWithCGImage:_imageView.image.CGImage];
    //Name表示滤镜的名字,后面的键值对表示属性,inputImage表示要处理的图像,inputIntensity表示处理的强度。
    CIFilter* filter = [CIFilter filterWithName:@"CISepiaTone" keysAndValues:@"inputImage", image,@"inputIntensity", @0.9f, nil];
    //得到处理后的图像
    image = [filter outputImage];
    _imageView.image = [UIImage imageWithCIImage:image];

我们可以把现在所有滤镜的名字打印出来,然后自己查看想用滤镜的使用方法
NSArray *filters = [CIFilter filterNamesInCategory:kCICategoryBuiltIn];
NSLog(@"%@", filters);

0 0
原创粉丝点击