1,效果图
通过滑动滑块,设置不同的模糊半径来实现不同的模糊程度。
2,样例代码
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
|
import
UIKit
class
ViewController
:
UIViewController
{
@IBOutlet
weak
var
imageView:
UIImageView
!
@IBOutlet
weak
var
slider:
UISlider
!
//原图
lazy
var
originalImage:
UIImage
= {
return
UIImage
(named:
"image1.jpg"
)
}()!
lazy
var
context:
CIContext
= {
return
CIContext
(options:
nil
)
}()
override
func
viewDidLoad() {
super
.viewDidLoad()
}
//滑块拖动后
@IBAction
func
sliderValueChanged(_ sender:
AnyObject
) {
//获取原始图片
let
inputImage =
CIImage
(image: originalImage)
//使用高斯模糊滤镜
let
filter
=
CIFilter
(name:
"CIGaussianBlur"
)!
filter
.setValue(inputImage, forKey:kCIInputImageKey)
//设置模糊半径值(越大越模糊)
filter
.setValue(slider.value, forKey: kCIInputRadiusKey)
let
outputCIImage =
filter
.outputImage!
let
rect =
CGRect
(origin:
CGPoint
.zero, size: originalImage.size)
let
cgImage = context.createCGImage(outputCIImage, from: rect)
//显示生成的模糊图片
imageView.image =
UIImage
(cgImage: cgImage!)
}
override
func
didReceiveMemoryWarning() {
super
.didReceiveMemoryWarning()
}
}
|