このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

<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 を使用することも可能です。

使用コンテキスト

カテゴリーフィルター構成要素
許可されている内容任意の数、任意の順序の以下の要素。
<animate><set>

属性

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

ブラウザーの互換性

関連情報