CIFilter 滤镜 ,分别有什么作用

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

 后续再说,想起来再写,每个滤镜用法差不多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

spoot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值