【问题标题】:iOS Core Image CIOverlayBlendMode behavioriOS Core Image CIOverlayBlendMode 行为
【发布时间】:2026-01-26 06:10:02
【问题描述】:

我在理解 iOS 上 CIOverlayBlendMode 的行为时遇到了一点问题。如果我在源图像上覆盖 50% 的纯灰色图像,则生成的图像比源图像要暗得多。我曾预计叠加 50% 的灰色不会导致输出图像发生任何变化(这是 Photoshop 中叠加混合模式的行为)。我能找到的文档没有详细说明它应该如何工作,而且据我所知,没有任何参数可以调整它。

在 CIOverlayBlendMode 过滤器中保持不变的正确中性色调是什么?我在这里遗漏了其他一些细节或细微差别吗?

【问题讨论】:

    标签: ios core-image


    【解决方案1】:

    您可以交换inputImageinputBackgroundImage 参数值。

    对我来说,当 inputImage 是我想要覆盖在 inputBackgroundImage 之上的渐变(在你的情况下为 50% 灰色)时,它按预期工作:

    let image = CIImage(contentsOfURL: url)! let radialGradient = CIFilter(name: "CIRadialGradient", withInputParameters: [ ... ])! let overlay = CIFilter(name: "CIOverlayBlendMode", withInputParameters: [ kCIInputBackgroundImageKey: image, kCIInputImageKey: radialGradient.outputImage!, ])

    【讨论】:

      最近更新 更多