DDGScreenShot —圖片加各類濾鏡高逼格操做

寫在前面

全部功能演示

imageimage

圖片加各類濾鏡操做,固然蘋果給開發者提供了相關的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

其他功能以下

  1. (一)DDGScreenShot — 複雜屏幕截屏(如view ScrollView webView wkwebView)
  2. (二)DDGScreenShot--iOS 圖片處理--多圖片拼接
  3. (三)DDGScreenShot--iOS 圖片裁剪,切圓角,加邊框,你還用cornerRadius,還有更高級的用法
  4. (四)DDGScreenShot—圖片擦除功能
  5. (五)DDGScreenShot—截取圖片的任意部分github

  6. (七)DDGScreenShot —圖片加高斯模糊,老電影效果web

相關文章
相關標籤/搜索