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