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);