gpt4 book ai didi

SVG:一个过滤器中的多种效果

转载 作者:行者123 更新时间:2023-12-02 22:45:10 25 4
gpt4 key购买 nike

我正在尝试在单个 SVG 过滤器中实现多个阴影,但我相信我的问题比这更通用:如何将多个效果添加到单个 SVG 过滤器中? 在我的具体来说,这就是我正在尝试做的事情。

我有一个 SVG 文档,当前包含单个路径元素,并且我已对此路径元素应用了单个投影效果。

我的 SVG 文档

 <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="1440" height="1750">
<defs>
<filter id="dropshadow">
<feGaussianBlur in="SourceAlpha" stdDeviation="2.2"></feGaussianBlur>
<feOffset dx="12" dy="12" result="offsetblur"></feOffset>
<feFlood flood-color="rgba(0,0,0,0.5)"></feFlood>
<feComposite in2="offsetblur" operator="in"></feComposite>
<feMerge>
<feMergeNode></feMergeNode>
<feMergeNode in="SourceGraphic"></feMergeNode>
</feMerge>
</filter>
</defs>

<path xmlns:xlink="http://www.w3.org/1999/xlink" d="M 100 100 L 300 100 L 200 300 z z" fill="#2DA9D6" filter="url(#dropshadow)"></path>
</svg>

这给了我一个看起来像这样的 SVG:

enter image description here

现在,我想向同一个路径元素添加第二个(完全不同的)阴影。例如,假设有一个位于元素左侧上方的阴影。在 CSS 中,我的整个投影可能如下所示:

box-shadow: 5px 5px 5px rgba(0,0,0,0.5), -5px -5px 5px rgba(0,0,0,0.5);

如何使用 SVG 滤镜制作这些多重阴影?我看过this question这建议将多种效果放入一个过滤器中,但我不确定如何将多种效果合并到一个过滤器中。

感谢您的帮助!

最佳答案

您可以使用 result 属性为过滤器基元元素的输出命名,将其视为一种过滤器本地 id 属性。然后,您可以使用该名称作为带有 inin2 属性的过滤器输入。

<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="1440" height="1750">
<defs>
<filter id="dropshadow">
<feGaussianBlur in="SourceAlpha" stdDeviation="3" result="blur"/>
<feOffset dx="12" dy="12" result="offsetblur"/>
<feOffset dx="-20" dy="-12" result="offsetblur2" in="blur"/>
<feComponentTransfer result="shadow1" in="offsetblur">
<feFuncA type="linear" slope="0.5"/>
</feComponentTransfer>
<feComponentTransfer result="shadow2" in="offsetblur2">
<feFuncA type="linear" slope="0.2"/>
</feComponentTransfer>
<feMerge>
<feMergeNode in="shadow1"/>
<feMergeNode in="shadow2"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
</defs>

<path xmlns:xlink="http://www.w3.org/1999/xlink" d="M 100 100 L 300 100 L 200 300 z z" fill="#2DA9D6" filter="url(#dropshadow)"></path>
</svg>

参见fiddle .

关于SVG:一个过滤器中的多种效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22756224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com