[iOS]Mickey Photos相片編輯App-Part3.濾鏡

CoreImage.CIFilterBuiltins/CIImage/CIFilter/CIContex

這次作品分成四篇

Part1.Delegate/資料傳遞
Part2.翻轉/裁切
Part3.濾鏡
Part4.貼圖/背景圖/文字/儲存

其他篇在這~

濾鏡

加入套件CoreImage.CIFilterBuiltins

首先import CoreImage.CIFilterBuiltins

各種濾鏡風格

接著從下方連結挑選自己想要的濾鏡風格,打包到array之中

產生CIImage

因為CIFilter只能作用在CIImage,所以必須先讓UIImge轉換到CIImage

傳入kCIInputImageKey

在forKey參數傳入kCIInputImageKey告訴他我們要套濾鏡的圖片,也就是ciImage

輸出已套用濾鏡的圖片

這邊運用if let 語法(optional binding),是因為輸出的過程很有可能產生錯誤,為了確保程式不會發生錯誤閃退,使用if let 做一層保險。

.outputImage可輸出經過濾鏡的圖片,但是要再經過CIContext()createCGimage才能得到我們想要的圖像大小,從官方文件可看到from參數是要傳入CGRect

.extent代表的是圖片範圍,繼承CGRect

接著要再把CGImage轉換回去UIImage,怎麼過去的就要怎麼回來啊!

將濾鏡按鈕設定tag數字,即可對應filterArray之中的濾鏡效果

//選取濾鏡風格@IBAction func pressFilterBtn(_ sender: UIButton) {    if sender.tag == 0 {    editImageView.image = photoImg.photo    }    else {    filterNum = sender.tag    buildFilter()    }}

--

--