coreimage framework 組成
apple 已經幫我們把image的處理分類好,來看看它的結構:
主要分為三部分:
1)定義部分:CoreImage 何CoreImageDefines。見名思義,代表了CoreImage 這個架構和它的定義。
2)操作部分:
濾鏡(CIFliter):CIFilter 產生一個CIImage。典型的,接受一到多的圖片作為輸入,經過一些過濾操作,產生指定輸出的圖片。
檢測(CIDetector):CIDetector 檢測處理圖片的特性,如使用來檢測圖片中人臉的眼睛、嘴巴、等等。
特徵(CIFeature):CIFeature 代表由 detector處理後產生的特徵。
3)映像部分:
畫布(CIContext):畫布類可被用與處理Quartz 2D 或者 OpenGL。可以用它來關聯CoreImage類。如濾鏡、顏色等渲染處理。
顏色(CIColor): 圖片的關聯與畫布、圖片像素顏色的處理。
向量(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(調整圖片對比)、高亮陰影調整。