Swift - 给图片添加滤镜效果(棕褐色老照片滤镜,黑白滤镜)
作者:hangge | 2015-09-29 09:04
(本文代码已升级智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()
全部评论(1)
受益匪浅
站长回复:欢迎常来看看,我会持续更新的