<feDisplacementMap>
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
<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>
仕様書
| Specification |
|---|
| Filter Effects Module Level 1> # feDisplacementMapElement> |