2

我正在使用 SVG。

标准混合模式:屏幕、变亮、叠加、差异。等等……不是我需要的。

我已经为我需要使用的另一种混合模式设计了一个公式,它不是任何标准模式,但不知道如何将它实现到我的 SVG 文件中以使其工作。

例如,我是否只是在过滤器中执行 feBlend mode="Cm = B(Cb, Cs)" ?

具体来说,我想将上面图层的亮度应用到下面图层的 alpha 通道。

一定有办法的。

谢谢。

4

1 回答 1

3

您无法在 SVG 1.1 中提供自定义混合公式 - 您被内置插件卡住了。但是,您可以使用具有多个 feBlends 和 feComposite 算术模式并结合 feColorMatrix 的复合过滤器来创建其他类型的混合。

更新:

你想做的事情不可能按照你想做的方式去做。其中一个输入完全不透明的 feBlend 操作的结果是完全不透明的结果。feBlend 使用预乘值进行颜色计算。所以,不能直接把一张图片的alpha通道,转移到另一张图片的alpha通道。但是,如果您尝试将图像与其背景混合,这就是您尝试调整 Alpha 通道的原因,您可以通过使用背景图像作为混合过滤器的一部分来实现您正在寻找的效果(但这仅在今天的 IE10 和 Opera 中才有可能)。

在 CSS/SVG 混合规范“mode=Luminosity”中提出了一种新的混合模式,它可以满足您的需求——但这暂时不会出现在浏览器中。

于 2013-01-05T22:36:38.573 回答