今天学习SVG滤镜feGaussianBlur和feDropShadow

💡 原文中文,约3300字,阅读约需8分钟。
📝

内容提要

这篇文章介绍了SVG中的feGaussianBlur和feDropShadow两个滤镜元素的使用方法和效果。feGaussianBlur用于实现高斯模糊效果,而feDropShadow用于实现投影效果。文章还给出了具体的代码示例和效果展示。作者表示今天学习收获颇多,但也感叹时间不够用,希望下周有机会去钓鱼。

🔎

延伸解读

feGaussianBlur 的核心属性:stdDeviation

feGaussianBlur 用于实现高斯模糊,其关键属性是 stdDeviation,表示标准偏差,数值越大模糊程度越高。文章示例中分别使用 1、5、10 来展示不同模糊大小。此外,in 属性表示输入源,但本文暂未深入;edgeMode 属性控制边缘模糊方式,作者实测差异肉眼不可见,因此日常可忽略。

feDropShadow 的属性与使用要点

feDropShadow 用于生成投影,类似 CSS 的 drop-shadow()。它支持 dx、dy 控制偏移,stdDeviation 控制模糊大小,flood-color 设置投影颜色,flood-opacity 设置透明度。由于 flood-color 支持 rgba() 和 #rrggbbaa,flood-opacity 多用于关键字颜色的场景。文章示例用红色半透明投影展示了文字效果。

组合滤镜实现局部模糊与投影

文章演示了结合 feGaussianBlur、feDropShadow 和 clipPath 实现图片局部模糊并带投影的效果。原理是:用 clipPath 裁剪出局部区域,对该区域应用高斯模糊,再覆盖到未模糊的底图上。同时,另一张图片应用 feDropShadow 产生投影。这展示了 SVG 滤镜组合使用的灵活性。

❓

Q&A

feGaussianBlur的主要功能是什么?

feGaussianBlur用于实现高斯模糊效果,支持stdDeviation属性来控制模糊大小。

如何使用feDropShadow实现投影效果?

使用feDropShadow可以通过设置dx、dy、stdDeviation、flood-color和flood-opacity属性来实现投影效果。

在SVG中,如何控制高斯模糊的大小?

通过设置feGaussianBlur的stdDeviation属性,可以控制高斯模糊的大小。

feDropShadow的属性中,flood-color和flood-opacity有什么区别?

flood-color指定投影的填充颜色,而flood-opacity控制投影的透明度。

能否提供一个使用feGaussianBlur和feDropShadow的代码示例?

可以,示例代码包括使用feGaussianBlur和feDropShadow来实现模糊和投影效果的SVG代码。

学习SVG滤镜的过程中有哪些收获?

学习过程中收获了对feGaussianBlur和feDropShadow的理解,以及clipPath元素的使用。

➡️

继续阅读