swift- 优化照片 滤镜

前端之家收集整理的这篇文章主要介绍了swift- 优化照片 滤镜前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Core Image 能通过分析图片的各个属性,人脸的区域等进行自动优化图片。我们只需要调用 autoAdjustmentFiltersWithOptions 这个API方法获取各个自动增强滤镜来优化图片即可。不管是人物照片还是风景照均可增强效果
(以前另外还有个叫 autoAdjustmentFilters方法,现已废除。)

1,具体使用的滤镜如下:
(1) CIRedEyeCorrection:修复因相机的闪光灯导致的各种红眼
(2) CIFaceBalance:调整肤色
(3) CIVibrance:在不影响肤色的情况下,改善图像的饱和度
(4) CIToneCurve:改善图像的对比度
(5) CIHighlightShadowAdjust:改善阴影细节

2,autoAdjustmentFiltersWithOptions方法参数说明(字典类型):
CIDetectorImageOrientation提供图像方向:使Core Image能更精确的定位到脸的位置,对CIRedEyeCorrection和CIFaceBalance滤镜很有用。
(2) kCIImageAutoAdjustEnhance设为false :只需要消除红眼,不要其他滤镜
(3) kCIImageAutoAdjustRedEye设为false :消除红眼不要,其他滤镜都要
3,效果图如下(右侧为优化后的):


4,代码如下(所有滤镜都使用):
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
42
import UIKit
class ViewController : UIViewController {
@IBOutlet weak var imageView: UIImageView !
//图片原图
lazy originalImage: UIImage = {
return (named: "IMG_0473.jpg" )
}()!
context: CIContext = {
return CIContext (options: nil )
}()
override func viewDidLoad() {
super .viewDidLoad()
}
didReceiveMemoryWarning() {
.didReceiveMemoryWarning()
}
//优化图片
@IBAction autoAdjustImage(sender: AnyObject ) {
inputImage = CIImage (image: originalImage)
let options:[ String AnyObject ] = [ CIDetectorImageOrientation :1] //图片方向
filters = inputImage!.autoAdjustmentFiltersWithOptions(options)
//遍历所有滤镜,依次处理图像
for filter CIFilter in filters {
.setValue(inputImage,forKey: kCIInputImageKey)
inputImage = .outputImage
}
cgImage = context.createCGImage(inputImage!,fromRect: inputImage!.extent)
self .imageView.image = ( CGImage : cgImage)
}
//还原图片
resetImage(sender: ) {
.imageView.image = originalImage
}
}

原文出自: www.hangge.com 转载请保留原文链接 http://www.hangge.com/blog/cache/detail_902.html

猜你在找的Swift相关文章