边缘处的高斯模糊截止

sil*_*gle 28 svg svg-filters

我正在为android上的绘图程序开发一个svg导出实用程序.我遇到了一个问题,即背后的模糊被截止超过了形状边界 - 看起来我需要调整viewBox的大小或增加边距或其他东西.有谁知道最好的方法?

测试文件网址在这里 - 因为mime类型在服务器上没有正确设置而下载,我现在无法重新启动它:(.文件中有嵌入的图像和字体,这就是为什么它很大.但是如果你把它保存到磁盘,你可以用chrome,ff等打开...

给出了该问题的放大示例.注意橙色发光的方形边缘.

Tan*_*gui 44

滤镜画布具有默认值:x = y = -10%,width = height = 120%.您可以使用滤镜元素上的x,y,width和height属性更改它们.

尝试设置更大的画布:

<filter x="-50%" y="-50%" width="200%" height="200%"/>
Run Code Online (Sandbox Code Playgroud)

然而,由于画布更大,会有性能损失.

  • 如果您尝试在 HTML 中的内联 SVG 中执行此操作,Safari 会存在一个错误,即过滤器不会使整个 svg 元素变大,因此截止仍然存在。解决方案是在 SVG 中添加一个具有相同 x/y/width/height 属性的不可见元素(例如 fill-opacity="0" 的矩形)。 (2认同)