如何使用 CIFilter 和不透明度进行不同的混合模式?

问题描述 投票:0回答:1

我正在尝试在 Photoshop 中使用 CIFilters 在 Swift 中复制混合两个图像。假设我想用 softLight 混合 img1 和 img2,那么在 Swift 中我可以做到:

let blendSoftLight = CIFilter.softLightBlendMode()
blendSoftLight.backgroundImage = img1
blendSoftLight.inputImage = img2

这可行,我会得到与 Photoshop 中相同的结果。但在 Photoshop 中你可以混合不透明度,所以如果我想用柔光和 50% 不透明度混合 img2 和 img1 - 这可以用 Swift 中的 CIFilter 实现吗?

我尝试了不同的方法,例如如上所述混合 img1 和 img2,然后使用 CIFilter.blendWithAlphaMask() 将生成的图像与原始图像混合,并使用 50% 的 alpha 蒙版。但结果当然不一样,因为 BlendWithAlphaMask 只进行“正常”混合,它没有使用柔光混合模式。

swift core-image blending
1个回答
0
投票

从 CISoftLightBlendMode 过滤器的文档中看来,它唯一需要的参数是

inputImage
inputBackgroundImage
。它似乎不允许您改变混合在一起的两个图像的不透明度。您可以在混合之前将 Alpha 通道应用于一个或另一个图像,以更改其不透明度。

© www.soinside.com 2019 - 2024. All rights reserved.