[Xcode 实际操作]六、媒体与动画-(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 }