天天看點

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之一

繼續閱讀