圖片加各類濾鏡操做,固然蘋果給開發者提供了相關的api和封裝, 大部分開發者感受這是這是晦澀難懂的,接下來就讓咱們來了解一下, 其實也沒有那麼深不可測。
/** ** 圖片濾鏡處理篇 - image --傳圖片 - filter -- 傳入濾鏡 */ public func imageFilterHandel(image: UIImage, filterName: String) -> UIImage? { //輸入圖片 let inputImage = CIImage(image: image) //設置filter健值 let filter = CIFilter(name: filterName) filter?.setValue(inputImage, forKey: kCIInputImageKey) //獲得濾鏡中輸出圖像 let outputImage = filter?.outputImage! //設置上下文 let context: CIContext = CIContext(options: nil) //經過上下文繪製獲取 let cgImage = context.createCGImage(outputImage!, from: (outputImage?.extent)!) //獲得最新的圖片 let newImage = UIImage(cgImage: cgImage!) return newImage } /** ** 圖片濾鏡處理篇 - image --傳圖片 - filter -- 傳入濾鏡 - parameter completed: 異步完成回調(主線程回調) */ public func async_imageFilterHandel(image: UIImage, filterName: String,completed:@escaping (UIImage?) -> ()) -> Void { DispatchQueue.global().async{ let newImage = self.imageFilterHandel(image: image, filterName: filterName) DispatchQueue.main.async(execute: { completed(newImage) }) } } //具體用法 let newImage = DDGManage.share.imageFilterHandel(image: originalImage, filterName: "CIPhotoEffectInstant") self.imageView.image = newImage
固然這只是拋磚引玉,還有更高級的用法,如高斯模糊,老電影等, 此代碼已經上傳到githup[DDGScreenShot](https://github.com/dudongge/DDGScreenShot) [link](https://github.com/dudongge/DDGScreenShot) 固然這只是這個庫的功能的一小部分 想看更多功能,能夠去github上下載,若是對您有幫助,但願您不吝給個star.
歡迎查看DDGScreenShotgit