svg - 我如何创建一个结合了 feTurbulence 和 feGaussianBlur 的 svg 过滤器
问题描述
如何创建具有大量模糊和颗粒状纹理的 svg 圆圈?
我不知道如何在过滤器中结合 GaussianBlur 和 feTurbulence,它只是应用或反转的粒状纹理。
解决方案
这是我相信你想要的一个例子。
- 模糊原始对象
- 创建(单色)颗粒
- 在模糊对象的顶部合成颗粒。
您必须在模糊后应用颗粒。因为如果你反过来做,你只会模糊纹理。并且可能会失去效果。
svg {
width: 500px;
}
<svg viewBox="0 0 100 100">
<filter id="blur-plus-grain" x="-50%" y="-50%" width="200%" height="200%">
<!-- Blur the input object -->
<feGaussianBlur stdDeviation="10" result="blur"/>
<!-- Create some grainy noise -->
<feTurbulence type="fractalNoise" baseFrequency="0.95" numOctaves="3" stitchTiles="stitch"/>
<!-- Make the grain greyscale -->
<feColorMatrix type="saturate" values="0" result="grain"/>
<!-- Composit the grain onto the blurred object -->
<feComposite operator="in" in="blur" in2="grain"/>
</filter>
<ellipse cx="50" cy="50" rx="30" ry="20" fill="gold" filter='url(#blur-plus-grain)'/>
</svg>
推荐阅读
- azure - ML 组件在指向 Azure Data Lake Store Gen2 的 Azure Databricks (7.3.9) 中不起作用
- vuejs3 - Vue 3、Vuex 和 Vuelidate
- python - 循环通过分组的数据帧时找到上一个组
- postgresql - postgresql 12 jsonb_path_query 如何从一个大的 jsonb 对象中选择一些键来构造一个小对象?
- scheme - 嗨,有人可以检查一下我在这个左折叠程序中做错了什么吗?
- java - Java 的 SourceTree 预提交失败
- bit-manipulation - 使用按位运算 PIC12F615 MPLAB X 设置 PWM 时出现问题
- javascript - ReferenceError: $ 未定义 (Selenium::WebDriver::Error::JavascriptError)
- reactjs - 如何使用 Jest 模拟我的 React Hook 组件的窗口调整大小
- r - 分组箱线图上的亮点