Swift - 给图片添加滤镜效果(棕褐色老照片滤镜,黑白滤镜)
(本文代码已升级智Swift4)
1,棕褐色滤镜 - CISepiaTone
这个有点复古老照片发黄的效果(上面一张是原图)。
扩展UIImage类,添加棕褐色滤镜:
import UIKit //--- UIImageFilterExtension.swift --- extension UIImage { //棕褐色复古滤镜(老照片效果) func sepiaTone() -> UIImage? { let imageData = UIImagePNGRepresentation(self) let inputImage = CoreImage.CIImage(data: imageData!) let context = CIContext(options:nil) let filter = CIFilter(name:"CISepiaTone") filter!.setValue(inputImage, forKey: kCIInputImageKey) filter!.setValue(0.8, forKey: "inputIntensity") if let outputImage = filter!.outputImage { let outImage = context.createCGImage(outputImage, from: outputImage.extent) return UIImage(cgImage: outImage!) } return nil } }使用样例:
imageView1.image = UIImage(named:"img2.jpg")?.sepiaTone()
2,黑白滤镜 - CIPhotoEffectNoir
扩展UIImage类,添加黑白滤镜:
import UIKit //--- UIImageFilterExtension.swift --- extension UIImage { //黑白效果滤镜 func noir() -> UIImage? { let imageData = UIImagePNGRepresentation(self) let inputImage = CoreImage.CIImage(data: imageData!) let context = CIContext(options:nil) let filter = CIFilter(name:"CIPhotoEffectNoir") filter!.setValue(inputImage, forKey: kCIInputImageKey) if let outputImage = filter!.outputImage { let outImage = context.createCGImage(outputImage, from: outputImage.extent) return UIImage(cgImage: outImage!) } return nil } }使用样例:
imageView1.image = UIImage(named:"img2.jpg")?.noir()
受益匪浅