<feDisplacementMap>

<feDisplacementMap> SVG 滤镜基本元素使用来自 in2 的图像的像素值,以空间方式位移来自 in 的图像。

转换公式如下所示

P'(x,y) ← P(x + scale * (XC(x,y) - 0.5), y + scale * (YC(x,y) - 0.5))

其中 P(x,y) 是输入图像,in,而 P'(x,y) 是目标。XC(x,y)YC(x,y) 是由 xChannelSelectoryChannelSelector 指定的通道的组件值。

使用场景

类别滤镜基本元素
允许的内容任意数量的以下元素,按任意顺序
<animate>, <set>

属性

DOM 接口

此元素实现 SVGFEDisplacementMapElement 接口。

示例

html
<svg
  width="200"
  height="200"
  viewBox="0 0 220 220"
  xmlns="http://www.w3.org/2000/svg">
  <filter id="displacementFilter">
    <feTurbulence
      type="turbulence"
      baseFrequency="0.05"
      numOctaves="2"
      result="turbulence" />
    <feDisplacementMap
      in2="turbulence"
      in="SourceGraphic"
      scale="50"
      xChannelSelector="R"
      yChannelSelector="G" />
  </filter>

  <circle cx="100" cy="100" r="100" style="filter: url(#displacementFilter)" />
</svg>

规范

规范
滤镜效果模块级别 1
# feDisplacementMapElement

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参见