CIFilter是Core Image框架中的一个类,它提供了许多不同的滤镜,用于对图像进行各种操作和处理。下面列举了一些常见的CIFilter滤镜及其作用:
1.CIColorControls:用于调整图像的色调、亮度和饱和度。
2.CIGaussianBlur:高斯模糊,可以用来使图片变得模糊。
3.CIPhotoEffectInstant:用于将图像转换为具有胶片效果的图像。
4.CISepiaTone:用于将图像转换为棕褐色色调。
5.CIColorInvert:用于将图像的颜色反转,黑色变成白色,白色变成黑色。
6.CIVignette:用于向图像添加周围阴影效果,加深图片边缘,使图片中心更加突出。
7.CICircularWrap:用于将图像弯曲和扭曲,创建具有卷曲效果的图像。
8.CIPhotoEffectMono:将图片转换为黑白照片,可以加深黑色和白色的对比度。
9.CIHueAdjust:用于调整图像的色相。
10.CIBumpDistortion:用于对图像进行颠簸失真效果。
11.CIColorMonochrome:将图片转换为单色调,可以指定颜色和强度。
12.CIBloom:添加一个柔和的辉光效果,可以调整亮度和半径。
13.CICrystallize:将图片像素化,可以产生类似马赛克的效果。
1.CIColorControls:用于调整图像的色调、亮度和饱和度。
CIColorControls滤镜可用于调整图像的整体色调、亮度和饱和度,它接受一个三个浮点数的向量作为输入参数,分别表示色调、亮度和饱和度的调整值。这些调整值可以为负值,因此该滤镜不仅可以增加图像的亮度和饱和度,还可以减少它们。例如,要将一个图像的色调增加50%,亮度降低25%,饱和度增加20%,可以使用以下代码:
let colorControlsFilter = CIFilter(name: "CIColorControls")!
colorControlsFilter.setValue(image, forKey: kCIInputImageKey)
colorControlsFilter.setValue(CIVector(x: 0.5, y: -0.25, z: 0.2), forKey: "inputBrightness")
colorControlsFilter.setValue(CIVector(x: 1.5, y: 1.5, z: 1.5), forKey: "inputContrast")
colorControlsFilter.setValue(CIVector(x: 1.2, y: 1.2, z: 1.2), forKey: "inputSaturation")
let outputImage = colorControlsFilter.outputImage!
2.CIGaussianBlur:用于对图像进行高斯模糊处理。 CIGaussianBlur滤镜可用于对图像进行高斯模糊处理,它接受一个浮点数作为输入参数,表示模糊半径。模糊半径越大,图像就会越模糊。例如,要对一个图像进行半径为10的高斯模糊处理,可以使用以下代码
let gaussianBlurFilter = CIFilter(name: "CIGaussianBlur")!
gaussianBlurFilter.setValue(image, forKey: kCIInputImageKey)
gaussianBlurFilter.setValue(10, forKey: "inputRadius")
let outputImage = gaussianBlurFilter.outputImage!
3.CIPhotoEffectInstant
let filter = CIFilter(name: "CIPhotoEffectInstant")
filter?.setValue(inputImage, forKey: kCIInputImageKey)
let outputImage = filter?.outputImage
4.CISepiaTone:用于将图像转换为棕褐色色调。 CISepiaTone滤镜可用于将图像转换为棕褐色色调,它接受一个浮点数作为输入参数,表示棕褐色的强度。强度越高,图像就会越接近棕褐色。例如,要将一个图像转换为50%棕褐色色调,可以使用以下代码:
let sepiaToneFilter = CIFilter(name: "CISepiaTone")!
sepiaToneFilter.setValue(image, forKey: kCIInputImageKey)
sepiaToneFilter.setValue(0.5, forKey: "inputIntensity")
let outputImage = sepiaT
后续再说,想起来再写,每个滤镜用法差不多