SVG嵌套过滤器使白色透明

我正在尝试一组噪声/静态纹理。我的目标是创建一个看起来像这样的纹理:GOAL

在获取静态纹理并将其应用于饱和矩阵的输出方面,我已经走了很远,有关更多内容,请参见第5条最右边的here

`<filter  x="0%" y="0%" width="100%" height="100%" id="noiseMatrix3" filterUnits="objectBoundingBox" color-interpolation-filters="sRGB">
    <feTurbulence type="fractalNoise" result="f1" stitchTiles="noStitch" baseFrequency="0.2" numOctaves="1" seed="2" />
    <feColorMatrix type="matrix" 
            values="-11 0 0 0 6
                    -11 0 0 0 6
                    -11 0 0 0 6
                    0 0 0 0 1" in="f1" result="f2" />
   <feColorMatrix type="saturate" in="SourceGraphic" values=".6" result="f4"/>
    <feComposite in="f2" in2="f4" result="f5"  operator="arithmetic"  k1="0" k2="1" k3="1" k4="0"/>
</filter>`

但是,我想代替白色纹理来查看源图像(即照片中的粉红色渐变)。我怀疑这与将白色值转换为alpha有关。但是,当我首先尝试使用luminanceToAlpha过滤噪声然后进行合并时,我不得不使用其他运算符,并且产生的噪声不会继承饱和过滤器的颜色。

applesseed 回答:SVG嵌套过滤器使白色透明

我认为您正在寻找乘而不是加-k的这种组合更适合您的feComposite /算术

 <filter  x="0%" y="0%" width="100%" height="100%" id="noiseMatrix3" filterUnits="objectBoundingBox" color-interpolation-filters="sRGB">
  <feTurbulence type="fractalNoise" result="f1" stitchTiles="noStitch" baseFrequency="0.2" numOctaves="1" seed="2" />
  <feColorMatrix type="matrix" 
        values="-11 0 0 0 6
                                    -11 0 0 0 6     
                                    -11 0 0 0 6      
                                    0 0 0 0 1" in="f1" result="f2" />
  <feColorMatrix type="saturate" in="SourceGraphic" values=".6" result="f4"/>
  <feComposite in="f2" in2="f4" result="f5"  operator="arithmetic"  k1="1" k2="0" k3=".6" k4="0" />   

 </filter>
本文链接:https://www.f2er.com/3156348.html

大家都在问