W3cubDocs

/SVG

<feDisplacementMap>

The <feDisplacementMap> SVG filter primitive uses the pixel values from the image from in2 to spatially displace the image from in.

The formula for the transformation looks like this:

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

where P(x,y) is the input image, in, and P'(x,y) is the destination. XC(x,y) and YC(x,y) are the component values of the channel designated by xChannelSelector and yChannelSelector.

Usage context

Categories Filter primitive element
Permitted content Any number of the following elements, in any order:
<animate>, <set>

Attributes

Global attributes

Specific attributes

DOM Interface

This element implements the SVGFEDisplacementMapElement interface.

Example

<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>

Specifications

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
feDisplacementMap
Yes
12
Yes
Yes
Yes
No
Yes
Yes
Yes
No
No
Yes
in
Yes
12
Yes
Yes
Yes
No
Yes
Yes
Yes
No
No
Yes
in2
Yes
12
Yes
Yes
Yes
No
Yes
Yes
Yes
No
No
Yes
scale
Yes
12
Yes
Yes
Yes
No
Yes
Yes
Yes
No
No
Yes
xChannelSelector
No
No
No
No
No
No
No
No
No
No
No
No
yChannelSelector
No
No
No
No
No
No
No
No
No
No
No
No

See also

© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feDisplacementMap