在 CALayer 上应用两个以上 CIFilter

Posted

技术标签:

【中文标题】在 CALayer 上应用两个以上 CIFilter【英文标题】:Applying more than two CIFilter over the CALayer 【发布时间】:2021-12-17 01:17:18 【问题描述】:

我正在尝试使用 CIFilter 为 UIImageView 制作 Canvas。在我的应用程序中,用户应该有机会使用 UIPanGesture 修饰他的照片(将 UIBezierPath 添加到 CALayer)。 但是我遇到了一个问题。我不知道如何在用户与 UIImageView 交互期间添加多个过滤器,因为它不能是透明的,并且 CALayer 应该包含 CIImage 以进行润饰(我正试图找到避免它的方法)。

例如:添加美白和皮肤光滑 现在我有类似的东西:

UIImageView 带有不透明度的 WhitenLayer 和带有过滤器的图像内容 具有不透明度的平滑层和内容中带有过滤器的源图像

而且看起来很糟糕。

【问题讨论】:

【参考方案1】:

使用 backgroundFilters 和 multiplyCompositing 解决

【讨论】:

以上是关于在 CALayer 上应用两个以上 CIFilter的主要内容,如果未能解决你的问题,请参考以下文章

CALayer:在图层内容上维护cornerRadius

CALayer 旋转动画不适用于呈现的 ViewController

CAAnimation 在发布的 CALayer 上运行回调——Mac OS X

QuartzCore 的 CALayer 问题

随机“CALayerInvalidGeometry原因:CALayer位置包含NaN”异常

6-闪耀的激光-CALayer 的应用