CoreImage濾鏡動態模糊

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var imageView1: UIImageView!
    @IBOutlet weak var imageView2: UIImageView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        imageView2.image = self.outputImageWithFilterName(filterName: "CIMotionBlur")
    }

    // CIMotionBlur
    func outputImageWithFilterName(filterName : String) -> UIImage {
        // 1. 將UIImage轉換成CIImage
        let ciImage = CIImage(image: imageView2.image!)
        // 2. 創建濾鏡
        let filter = CIFilter(name: filterName)
        filter?.setValue(ciImage, forKey: kCIInputImageKey)
        filter?.setValue( 10, forKey: "inputRadius")
        // 3. 渲染並輸出CIImage
        let outputImage = filter?.outputImage
        // 4. 獲取繪製上下文
        let context = CIContext(options: nil)
        // 5. 創建輸出CGImage
        let cgImage:CGImage = context.createCGImage(outputImage!, from: outputImage!.extent)!
        let image = UIImage.init(cgImage: cgImage)
        // 6. 返回image
        return image
    }

}

在這裏插入圖片描述
Demo CoreImage濾鏡動態模糊

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章