<feDisplacementMap>
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Please take two minutes to fill out our short survey.
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
.
Like other filter primitives, it handles color components in the linearRGB
color space by default. You can use color-interpolation-filters
to use sRGB
instead.
Usage context
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
Specification |
---|
Filter Effects Module Level 1 # feDisplacementMapElement |
Browser compatibility
See also
- SVG filter primitive attributes
<filter>
<animate>
<set>
<feBlend>
<feColorMatrix>
<feComponentTransfer>
<feComposite>
<feConvolveMatrix>
<feDiffuseLighting>
<feFlood>
<feGaussianBlur>
<feImage>
<feMerge>
<feMorphology>
<feOffset>
<feSpecularLighting>
<feTile>
<feTurbulence>
- SVG tutorial: Filter effects