
202
|
第
6
章
要在
Sprite Kit
中使用
CIFilter
,我们需要创建一个
SKEffectNode
对象,然
后将想使用滤镜的节点作为子节点加到这个
SKEffectNode
中。最后,将这个
SKEffectNode
添加到场景中。
然后,创建一个
CIFilter
,设置它的属性,将它赋给
SKEffectNode
的
filter
属性。
创建
CIFilter
可以使用
CIFilter
类的
filterWithName
方法。这个方法需要一个字
符串参数,以指定将要使用的滤镜名称。
不同的滤镜使用不同的属性,配置这些属性使用
CIFilter
的
setValue(_, forKey:)
方法。
内置滤镜有几十种,这些滤镜无法在此一一列出。这里,我们选择了一些比较酷的
滤镜:
CIGaussianBlur
高斯模糊效果。默认的模糊半径为
10.0
;我们可以通过
inputRadius
修改默认
的模糊半径。
CIPixellate
对位图使用像素化效果。默认像素尺寸为
8.0
;我们可以通过
inputScale
来修
改这个值。
CIPhotoEffectNoir
提升位图的对比度,将位图转变为黑白图片。这个滤镜没有任何属性可以修改。
6.15
贝塞尔曲线
问题
用贝塞尔曲线来绘制图形(自定义的形状和线段)。
解决方案
UIBezierPath
类用于表示几何形状:
let rectangle = UIBezierPath(rect:CGRect(x: 0, y: 0,
width: 100, height: ...