核心映像简介
在iOS中,核心图像框架(Core Image framework)是iOS5在iOS平台上新加入的图像处理框架,为基于像素的图像操作和分析提供了强大高效的图像处理方法,并内置了许多强大的滤镜(目前数量超过180)。这些滤镜提供了多种效果,它们可以通过滤镜链进行叠加,形成强大的自定义效果。
过滤器是一个有许多输入和输出并执行一些更改的对象。例如,模糊滤镜可能需要输入图像和模糊半径来产生适当的模糊输出图像。
过滤器链是过滤器链接在一起的网络,因此一个过滤器的输出可以是另一个过滤器的输入。这样就可以达到精心制作的效果。
高斯模糊效果示例:
效果如图所示:
核心图像框架中有很多滤镜,那么我们怎么知道有哪些滤镜呢?怎么知道每个滤镜的具体用法?我们可以从CIFilter的头文件中找到以kCICategory开头的过滤器分类,然后通过CIFilter提供的class方法得到相应分类下的所有过滤器。以kCICategoryBlur为例:
上面的滤镜打印出来的字符串是各种不同的滤镜效果,然后你可以通过查看滤镜的属性来理解它的用法。以高斯模糊为例:
属性描述:
CIAttributeFilterAvailable_Mac:支持的最低Mac系统版本。
CIAttributeFilterAvailable _ iOS:iOS系统支持的最低版本。
CIAttributeFilterCategories:效果所属的类别。
CIAttributeFilterDisplayName:效果显示的名称。
CIAttributeFilterName:效果名称
Ciattributereference文档:效果文档的地址
InputImage:输入图像属性描述(CIImage对象)。
InputRadius:输入模糊半径属性(NSNumber对象)的描述。默认模糊度为10,最低为0,最高为100。
iOS平台下创建CIContext的方法有很多种,常用的有两种。
注意:
使用基于GPU的CIContext会获得更好的性能,但跨应用使用时,会自动降为基于CPU。比如你在进入相册时使用UIImagePickerControllerDelegate的代理方法中的CIContext对象处理图像,系统会把这个任务交给CPU。