如何在 Swift4 中不使用 inputIntensity 参数控制 CIFilter 的强度?

Posted

技术标签:

【中文标题】如何在 Swift4 中不使用 inputIntensity 参数控制 CIFilter 的强度?【英文标题】:How to control intensity of CIFilter without inputIntensity parameter in Swift4? 【发布时间】:2019-11-25 21:09:19 【问题描述】:

我第一次尝试制作照片滤镜应用。 大多数照片滤镜应用程序都有一个滑块来控制它们提供的滤镜强度。 我知道如何用 inputIntensity 参数改变强度......就像这样......

filter.setValue(intensity, forKey:"inputIntensity")

例如,CIColorMonocrome 带有 inputIntensity 参数,但 Core Image Filter Reference 页面上的大多数颜色调整滤镜都没有 inputIntensity 参数。那么,如何控制我要创建的滤镜效果的强度?

特别是如果我结合多种效果并让用户控制过滤器的强度组合多种颜色校正......?

欢迎任何指针...!

【问题讨论】:

“大部分色彩调整滤镜”之类的? 那就拿颜色夹吧。范围是可调的。但要么你在范围之外,要么不在。强度在这里意味着什么? 【参考方案1】:

您在许多应用中看到的“强度”是一种简单的 Alpha 混合:您应用滤镜,将生成的图像的 Alpha(不透明度)设置为您想要的强度值,然后将该图像与原始图像混合。所以原来的“照耀”是根据强度来的。

请参阅this answer,了解如何使用 Core Image 做到这一点。

【讨论】:

感谢您的建议。这是一个很好的开始......!

以上是关于如何在 Swift4 中不使用 inputIntensity 参数控制 CIFilter 的强度?的主要内容,如果未能解决你的问题,请参考以下文章

为啥两个表格视图单元格中的两个集合视图在 Swift 4 中不起作用?

如何在 Swift 4 中使用 respondsToSelector 验证来自 HomeKit 的值的方法字节

添加观察在 Swift 4 中不起作用

Swift 4 Delegate 在 childViewController 中不起作用

python入门1

如何修复方法'initialize()'定义了Objective-C类方法'initialize',这是Swift 4中不允许的?