svg feGaussianBlur : correlation between stdDeviation and size

标签 svg blur inkscape

当我在 Inkscape 中模糊一个对象(假设为 10%)时,它会得到一个带有 feGaussionBlur 的滤镜,其 stdDeviation 为 10% * size/2。
然而,过滤器的大小为 124%(实际上就那么大,Inkscape 为了安全起见没有添加一点)。

这个数字从哪里来?我的猜测是 100% + 2.4 * (2*stdDeviation/size),但是这个 2.4 来自哪里?

最佳答案

来自the SVG 1.1 spec:

此滤镜基元对输入图像执行高斯模糊。 高斯模糊核是归一化卷积的近似:
G(x,y) = H(x)I(y) 在哪里 H(x) = exp(-x2/(2s2))/sqrt(2* pis2) 和 I(y) = exp(-y2/(2t2))/sqrt(2 pi*t2)

其中“s”是 x 方向的标准偏差,“t”是 y 方向的标准偏差,由“stdDeviation”指定。

“stdDeviation”的值可以是一个或两个数字。如果提供两个数字,第一个数字表示沿当前坐标系 x 轴的标准偏差值,第二个值表示 Y 方向的标准偏差。如果提供一个数字,则该值同时用于 X 和是的。

即使只为“stdDeviation”提供一个值,也可以将其实现为可分离卷积。

对于较大的 's' 值 (s >= 2.0),可以使用近似值:三个连续的框模糊构建分段二次卷积核,将高斯核近似到大约 3% 以内。

设 d = 地板(s * 3*sqrt(2*pi)/4 + 0.5)

...如果 d 是奇数,则使用三个大小为“d”的框模糊,以输出像素为中心。 ...如果 d 是偶数,则两个大小为“d”的框模糊(第一个以输出像素和左侧像素之间的像素边界为中心,第二个以输出像素和左侧像素之间的像素边界为中心)右边的那个)和一个以输出像素为中心的大小为“d+1”的框模糊。

Note: the approximation formula also applies correspondingly to 't'.*

关于svg feGaussianBlur : correlation between stdDeviation and size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36781067/

相关文章:

ios - iOS/safari 上的 SVG 凸起,带有滤镜、feGaussianBlur 和 feColorMatrix

css - 两种颜色的文字

Javascript 显示/隐藏链接不起作用

unity-game-engine - Unity 着色器将具有相同 Material 的对象渲染到后续 GrabPasses

pdf - Inkscape “PDF + Latex”导出

svg - 使用Inkscape命令行将svg转换为png失败

html - 图像不使用 CSS 重新缩放

Javascript 确定 svg 文本是否部分或全部可见

android - 带有 LAYER_TYPE_SOFTWARE 剪辑 View 的自定义 View