apple 已經幫咱們把image的處理分類好,來看看它的結構:app
主要分爲三部分:框架
1)定義部分:CoreImage 何CoreImageDefines。見名思義,表明了CoreImage 這個框架和它的定義。spa
2)操做部分:3d
濾鏡(CIFliter):CIFilter 產生一個CIImage。典型的,接受一到多的圖片做爲輸入,通過一些過濾操做,產生指定輸出的圖片。blog
檢測(CIDetector):CIDetector 檢測處理圖片的特性,如使用來檢測圖片中人臉的眼睛、嘴巴、等等。圖片
特徵(CIFeature):CIFeature 表明由 detector處理後產生的特徵。ci
3)圖像部分:input
畫布(CIContext):畫布類可被用與處理Quartz 2D 或者 OpenGL。能夠用它來關聯CoreImage類。如濾鏡、顏色等渲染處理。it
顏色(CIColor): 圖片的關聯與畫布、圖片像素顏色的處理。io
向量(CIVector): 圖片的座標向量等幾何方法處理。
圖片(CIImage): 表明一個圖像,可表明關聯後輸出的圖像。
2. 處理步驟:
1)create a ciimage object;
2) create a cifilter object and set input values
3) create a cicontext object.
4) render the filter output image into a cgimage
3.注意
a。關注Ciimage 產生的途徑:
1)經過URL和Data
2)經過其餘圖片類轉換,CGImageRef或其餘圖片。
3)經過CVpixelBufferRef。
4)一組像素Data。
b. 圖片顏色,KCCImageColorSpace 來重載默認顏色空間。
c. 圖片Metadata。
4. 使用濾鏡。
CISepiaTone、CiColorControls、CIHueBlendMode。
處理過程:多個CImage輸入 -- 》 CIHeBlendMode --》 CiSepiatone。
渲染輸出:
流程: 獲取context -》 轉成CIimage -》 渲染成CGImageRef -》 轉換爲UIimage -》 釋放 CGImageRef -》 使用UIImage。
5.臉部檢測
自動加強: CIRedEyeCorrection 、CIFaceBalance(調整圖片來給出更好的皮膚色調)、CIVibrance(在不扭曲皮膚色調的狀況下,增長飽和度)、CIToneCurve(調整圖片對比)、高亮陰影調整。