[Xcode10 实际操作]六、媒体与动画-(3)使用CoreImage框架设置图片的单色效果

本文将演示如何使用图片框架,将图片转换成单色样式。

在项目导航区,打开视图控制器的代码文件【ViewController.swift】

 1 import UIKit
 2 //首先导入要使用的框架,该框架提供了强大和高效的图像处理功能,
 3 //用来对基于像素的图像进行分析、操作和特效处理
 4 import CoreImage
 5 
 6 class ViewController: UIViewController {
 7 
 8     override func viewDidLoad() {
 9         super.viewDidLoad()
10         // Do any additional setup after loading the view, typically from a nib.
11         
12         //从项目资源文件中读取一张图片
13         let image = UIImage(named: "Picture")
14         //创建一个图像视图对象,
15         //并给图像视图指定需要显示的图片
16         let imageView = UIImageView(image: image)
17         //将图像视图,添加到当时视图控制器的根视图
18         self.view.addSubview(imageView)
19         
20         //然后初始化一个CoreImage图像对象,并加载之前导入的图片
21         let ciImage = CIImage(image: image!)
22         //初始化一个颜色对象,并设置其颜色值为棕色,
23         //其参数值介于0和1之间
24         let color = CIColor(red: 0.8, green: 0.6, blue: 0.4)
25         //初始化一个滤镜对象,并设置滤镜类型为单色调滤镜
26         let filter = CIFilter(name: "CIColorMonochrome")
27         //设置单色调滤镜的输入颜色值
28         filter?.setValue(color, forKey: kCIInputColorKey)
29         //设置单色调滤镜的颜色浓度值
30         filter?.setValue(1.0, forKey: kCIInputIntensityKey)
31         //设置需要应用单色调滤镜的图像
32         filter?.setValue(ciImage, forKey: kCIInputImageKey)
33         //获得应用单色调滤镜后的图像
34         let outImage = filter?.outputImage
35         
36         //更改图像视图的内容,为应用滤镜后的图像
37         imageView.image = UIImage(ciImage: outImage!)
38     }
39 
40     override func didReceiveMemoryWarning() {
41         super.didReceiveMemoryWarning()
42         // Dispose of any resources that can be recreated.
43     }
44 }

猜你喜欢

转载自www.cnblogs.com/strengthen/p/10034144.html