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
.
Categories | Filter primitive element |
---|---|
Permitted content | Any number of the following elements, in any order:<animate> , <set>
|
This element implements the SVGFEDisplacementMapElement
interface.
<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>
Specification | Status | Comment |
---|---|---|
Filter Effects Module Level 1 The definition of '<feDisplacementMap>' in that specification. | Working Draft | No changes |
Scalable Vector Graphics (SVG) 1.1 (Second Edition) The definition of '<feDisplacementMap>' in that specification. | Recommendation | Initial definition |
Desktop | ||||||
---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
Basic support | Yes | Yes | Yes | Yes | Yes | ? |
in |
Yes | Yes | Yes | Yes | Yes | ? |
in2 |
Yes | Yes | Yes | Yes | Yes | ? |
scale |
Yes | Yes | Yes | Yes | Yes | ? |
xChannelSelector |
? | ? | ? | ? | ? | ? |
yChannelSelector |
? | ? | ? | ? | ? | ? |
Mobile | |||||||
---|---|---|---|---|---|---|---|
Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
Basic support | ? | Yes | Yes | Yes | ? | ? | ? |
in |
? | Yes | Yes | Yes | ? | ? | ? |
in2 |
? | Yes | Yes | Yes | ? | ? | ? |
scale |
? | Yes | Yes | Yes | ? | ? | ? |
xChannelSelector |
? | ? | ? | ? | ? | ? | ? |
yChannelSelector |
? | ? | ? | ? | ? | ? | ? |
<filter>
<animate>
<set>
<feBlend>
<feColorMatrix>
<feComponentTransfer>
<feComposite>
<feConvolveMatrix>
<feDiffuseLighting>
<feFlood>
<feGaussianBlur>
<feImage>
<feMerge>
<feMorphology>
<feOffset>
<feSpecularLighting>
<feTile>
<feTurbulence>
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feDisplacementMap