d3.js - SVG 高斯模糊质量
问题描述
我正在显示一个 SVG 地图,其海岸线具有模糊效果,如下图所示:
我正在使用一个简单的feGaussianBlur
过滤器来绘制陆地多边形下方的海岸线:
<filter id="blur">
<feGaussianBlur in="SourceGraphic" stdDeviation="4">
</feGaussianBlur></filter>
结果在北海岸令人满意。但是,红色圆圈中出现了一些矩形图案。这是由于海岸被分割成几个线性元素,它们的模糊边缘相交。
有没有办法解决这个问题并在各处产生“不错”的模糊效果?
我已经尝试过color-interpolation-filters=sRGB
,image-rendering=optimizeQuality
但没有任何成功。
解决方案
不知何故,我认为这是因为过滤器尺寸,扩展部分被切割。尝试扩展这些边界:
<filter id="degenCodeNeon" x="-50%" y="-50%" width="200%" height="200%">
百分比使用 objectBoundingBox,您也可以指定 userSpaceOnUse。但首先尝试这个。
尝试使用 x,y -250% 和宽度/高度 600%,似乎有效。我建议添加颜色矩阵或组件传输过滤器作为补充,以将 alpha 完全降低到低于某个阈值的 0。
推荐阅读
- python - 如何更改 Tipping Problem 中的去模糊化方法?
- javascript - 如何从最小和最大数字之间的值计算宽度百分比?
- java - 不使用 parseint 或数组的二进制到十进制转换器
- javascript - jQuery:通过单击按钮从表行中获取值
- python - 无论编码如何,如何在 Python 中解码邮件?
- c# - C# Oracle 数据库对 PL/SQL 游标的引用
- intellij-idea - Micronaut 重新加载源改变了 intellj 的想法
- memory - 在 Linux 中从内核空间访问物理地址
- python-3.x - 在熊猫数据框中获取下一个非 nan 值
- python - What am I doing wrong here? Project Euler Problem 11