項目中要實作高斯模糊的效果,今天看了下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.效果
