iOS边城之图像编程(Core Image)

来源:互联网 发布:郎咸平 知乎 编辑:程序博客网 时间:2024/04/28 19:51

http://blog.csdn.net/victormokai/article/details/42395649


CoreImage.framework  前缀名:CIXXX  参考官方

 

概念

CoreImage是一个图像框架,它基于OpenGL顶层创建,底层则用着色器来处理图像,这意味着它利用了GPU基于硬件加速来处理图像。CoreImage中有很多滤镜,它们能够一次给予一张图像或者视频帧多种视觉效果。而且滤镜可以连接起来组成一个滤镜链,把滤镜效果叠加起来处理图像。

Core Image为iOS提供了超过90个内置filter,为OSX提供了超过120个的filter。你通过提供key-value对来设置filter的输入参数。filter的output可以作为另一个filter的input,这样就可以把多个filter连接起来,形成自己想要的效果。

 

核心成员

CIContext:上下文类,如CoreGraphics以及CoreData中的上下文用于处理绘制渲染以及处理托管对象一样,CoreImage的上下文也是实现对图像处理的具体对象。这里需要注意的是在Context创建的时候,我们需要给它设定为是基于GPU还是CPU。基于GPU的话,处理速度更快,因为利用了GPU硬件的并行优势。但是GPU受限于硬件纹理尺寸,而且如果你的程序在后台继续处理和保存图片的话,那么需要使用CPU,因为当app切换到后台状态时GPU处理会被打断。

CIFilter:图像处理滤镜,每种滤镜有不同的参数设置。

CIImage:Core Image框架中的图像类型,主要用于输入和输出图像。

 

如何玩

1.创建图像上下文CIContext

2.创建滤镜CIFilter

3.创建过滤原图片CIImage

4.调用CIFilter的setValue:forKey:方法为滤镜指定源图片

5.设置滤镜参数【可选】

6.取得输出图片显示或保存


0 0