<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) 分别是由 xChannelSelector 和 yChannelSelector 指定通道的分量值。
与其他滤镜原语一样,它默认在 linearRGB 色彩空间中处理颜色分量。你可以使用 color-interpolation-filters 改为使用 sRGB。
使用上下文
属性
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" filter="url(#displacementFilter)" />
</svg>
规范
| 规范 |
|---|
| Filter Effects Module Level 1> # feDisplacementMapElement> |