无缝拼接SVG feTurbulence滤镜

问题描述 投票:0回答:1

如何使用feTurbulence过滤器或过滤器组合在SVG中创建无缝平铺的噪声?

我希望获得与Gimp的Filters/Render/Noise/Solild Noise...类似的结果。

来自金普(Gimp)的地方:enter image description here

svg inkscape svg-filters
1个回答
0
投票

正如迈克尔·穆兰尼(Michael Mullany)所说:可以使用stitchTiles="stitch"属性来完成。

关于使用Inkscape处理此属性,我在InkScape错误中找到了此参考:UI for setting stitchTiles attribute (feTurbulence) missing in the filters editor。不幸的是,该功能将与InkScape v0.93一起实现,(仍然不可用AFAIK)

这里是具有feTurbulence属性的无缝平铺SVG stitchTiles="stitch"的示例:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 512 512" height="512" width="512">
  <defs>
    <filter x="0" y="0" width="100%" height="100%" id="myStichedNoise" style="color-interpolation-filters:sRGB;">
      <feTurbulence type="fractalNoise" stitchTiles="stitch" numOctaves="4" baseFrequency="0.0125"/>
      <feColorMatrix values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" />
    </filter>
    <pattern id="myPattern" width="33.33333%" height="33.33333%">
      <rect width="33.33333%" height="33.33333%" style="color:#000000;filter:url(#myStichedNoise)"/>
    </pattern>
  </defs>
  <rect fill="url(#myPattern)" width="100%" height="100%"/>
</svg>
© www.soinside.com 2019 - 2024. All rights reserved.