天天看点

IOS Core Image之一

项目中要实现高斯模糊的效果,今天看了下core image这块的内容, 主要包括ciimage、cifilter、cicontext、cidetector(检测)、cifeature(特征)等类。

今天先记录下ciimage、cifilter、cicontext三个类的使用。

一、基本的滤镜效果需要以下步骤

1.创建ciimage对象

2.创建cicontext对象用作画布

3.创建cifilter对象

4.输出滤镜

二、创建上面三个对象的api

1.创建ciimage对象 主要通过以下方法( 方法有好多种  具体查看类ciimage)

2.创建cicontext对象  

cicontext 构造函数contextwithoptions:的输入是一个nsdictionary。 它规定了各种选项,包括颜色格式以及内容是否应该运行在cpu或是gpu上。

在该类中还有一些其他方法

1、创建滤镜对象 

2、上面创建滤镜对象时需要filtername,那怎么查看name以及每个cifilter对象的属性呢?

在上面的代码中输出以下代码

从上面的输出结果我们可以看到filter有ciattributefiltercategories、ciattributefilterdisplayname、ciattributefiltername、inputimage、inputradius等属性。

在ciattributefiltercategories中可以看到滤镜有cicategoryblur, cicategorystillimage,cicategoryvideo, cicategorybuiltin种,在cifilter类中有下面的两个方法能遍历出所有的滤镜名

获得到滤镜名之后就可以通过attributes属性查看filter对象的属性 ,通过kvc来设置属性值

1、通过uiimage的imagewithciimage方法

2、通过通过uiimage的imagewithcgimage方法 此方法要用到cicontext

上面两种方法中,第一个每次调用都会生成一个cicontext。cicontext本来是可以重用以便提高性能和效率的。

5.完整代码

6.效果

IOS Core Image之一

继续阅读