Swift - 实现图片的模糊效果(高斯模糊滤镜)

来源:互联网 发布:澳大利亚mac口红便宜么 编辑:程序博客网 时间:2024/05/16 23:38

1,效果图

通过滑动滑块,设置不同的模糊半径来实现不同的模糊程度。
原文:Swift - 实现图片的模糊效果(高斯模糊滤镜)原文:Swift - 实现图片的模糊效果(高斯模糊滤镜)原文:Swift - 实现图片的模糊效果(高斯模糊滤镜)

2,样例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import UIKit
 
class ViewControllerUIViewController {
     
    @IBOutlet weak var imageView: UIImageView!
     
    @IBOutlet weak var slider: UISlider!
     
    //原图
    lazy var originalImage: UIImage = {
        return UIImage(named: "image1.jpg")
        }()!
     
    lazy var context: CIContext = {
        return CIContext(options: nil)
    }()
     
    override func viewDidLoad() {
        super.viewDidLoad()
    }
     
    //滑块拖动后
    @IBAction func sliderValueChanged(_ sender: AnyObject) {
        //获取原始图片
        let inputImage =  CIImage(image: originalImage)
        //使用高斯模糊滤镜
        let filter CIFilter(name: "CIGaussianBlur")!
        filter.setValue(inputImage, forKey:kCIInputImageKey)
        //设置模糊半径值(越大越模糊)
        filter.setValue(slider.value, forKey: kCIInputRadiusKey)
        let outputCIImage = filter.outputImage!
        let rect = CGRect(origin: CGPoint.zero, size: originalImage.size)
        let cgImage = context.createCGImage(outputCIImage, from: rect)
        //显示生成的模糊图片
        imageView.image = UIImage(cgImage: cgImage!)
    }
     
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}
0 0
原创粉丝点击