我有一个 feTurbulence 过滤器,可以生成 SVG 格式的云。我无法将不透明度调整为不太透明。云彩映衬着蓝天和一些白色的星星。透过云层,可以看到星星!因为下面的云不是不透明或蓝色的。这是 svg:
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" fill-rule="evenodd" clip-rule="evenodd" image-
rendering="optimizeQuality" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" viewBox="0
0 1800 300">
<defs>
<filter id="a" filterUnits="userSpaceOnUse">
<feTurbulence type="fractalNoise" seed="3" baseFrequency="0.05" numOctaves="6" result="noise1"/>
<feGaussianBlur in="SourceGraphic" stdDeviation="20"/>
<feDisplacementMap in="blur1" scale="40" in2="noise1" result="cloud1"/>
<feMerge>
<feMergeNode in="cloud1"/>
</feMerge>
</filter>
</defs>
<g fill="#FFF" stroke="#FFF" stroke-width="0" filter="url(#a)">
<rect x="500" y="45" width="350" height="12"/>
<rect x="960" y="65" width="300" height="18"/>
</g>
</svg>
我尝试将不透明度设置为 1(无论是滤镜还是对象),以使用 feMerge、feComposite 以及 Gemini 提供的其他一些建议。到目前为止,没有任何效果。我需要让云朵不显示它们后面的星星,所有云朵下面都应该是蓝色的(蓝色背景下的白云,而不是蓝色背景下的白云,里面有白点)。
您可以将 alpha -> 亮度颜色矩阵添加到过滤器的末尾,如下所示:
<feColorMatrix type="matrix" values="0 0 0 2 0
0 0 0 2 0
0 0 0 2 0
0 0 0 8 0"/>
</filter>
调整数字,直到找到你喜欢的东西