このページでは、フィルタを作るときの部品になる「フィルタプリミティブ要素」と「光源要素」について紹介します。
- Contents
- フィルタプリミティブ要素/光源要素とは
- フィルタプリミティブ要素
- 光源要素
(参考:フィルタとは)
(参考:主な組み込みフィルタ)
(参考:組み込みフィルタ一覧)
(参考:フィルタの変換過程を調べてみる)
(2023.05.12更新)
フィルタプリミティブ要素/光源要素とは
フィルタプリミティブ要素は、入力画像を出力画像に変換するフィルタの部品のような機能を持つSVG形式の要素(エレメント)です。
SVG形式では、部品であるフィルタプリミティブ要素を組み合わせることでフィルタを定義します。具体的にどんなふうに定義していくのかは「オリジナルのフィルタを作ってみた」を。
一方、光源要素(Light source elements)は、光源を定義する要素で、‘feDiffuseLighting’ や ‘feSpecularLighting’ といった光の当たり方で変化する一部のフィルタプリミティブ要素のパラメータとして用いられるものです。
SVGで定義されているフィルタプリミティブ要素の各々がどんな画像変換を行うものなのかを、以下に簡単にまとめます。
なお、Inkscapeのバージョン1.3は、2024.02現在でまだ正式な標準規格ではない(ドラフト段階の)SVGバージョン2の仕様を採用しているので、SVGの現時点での標準規格に沿った解説コンテンツとは違う点が多いことは注意が必要です。
フィルタプリミティブ要素
‘feBlend’ (Inkscapeのメニューの表記では)ブレンド
2つの入力画像をピクセルごとに混ぜます。(→ 詳細)
‘feColorMatrix’ カラーマトリクス
パラメータとして5行4列の行列を設定すると、既定の1列を加えた5x5の行列を使ってピクセルごとにRGBA値を変換します。(→ 詳細)
‘feComponentTransfer’ 色成分の伝達
パラメータとして変換関数(とそのパラメータ、ややこしい)を設定すると、RGBAのそれぞれについて対応する変換関数による変換を行います。(→ 詳細)
‘feComposite’ 合成
ピクセルごとの特殊な演算を行うことで、2つの画像を重ね合わせたような画像に変換します。(→ 詳細)
‘feConvolveMatrix’ コンボリューションマトリクス
カーネル行列をパラメータに指定すると、畳み込み演算を行います。ぼかしやエッジ抽出のような効果が得られます。(→ 詳細)
‘feDiffuseLighting’ 拡散照明
入力画像のRGBA値のうち、Aの値に基づいたバンプマップ(凹凸を表現した白黒画像)を使って画像を生成します。(→ 詳細)
‘feDisplacementMap’ 変位マップ
2つの画像を入力し、1つ目の画像の各ピクセルを、2つ目の画像のピクセルのR値G値B値A値のいずれかに基づいて移動します。(→ 詳細)
‘feFlood’ 塗りつぶし
パラメータに指定された色で塗りつぶされた矩形画像を生成します。
‘feGaussianBlur’ ガウスぼかし
入力画像に対するガウスぼかしを生成します。
‘feImage’ 画像
他のデータへの参照をパラメータとして指定すると、それを画像化して出力します。他のデータとしては、外部の画像ファイルやSVGデータ内でIDの付いているエレメントが参照できます。(→ 詳細)
‘feMerge’ マージ
複数の画像の入力を受け付け、それを上から順に重ねた画像に変換します。1つだけの入力の場合は、単にそれをそのまま出力します。
‘feMorphology’ モフォロジー
指定したパラメータに応じて、描かれているものを細めに変化させたり太めに変化させたりします。(→ 詳細)
‘feOffset’ オフセット
入力画像を指定したパラメータの分だけ平行移動します。
‘feSpecularLighting’ 反射光
feDiffuseLightingと似ていますが、こちらはパラメータとして指定された光源からの光を反射したような画像に変換します。(→ 詳細)
‘feTile’ タイル
入力した画像をタイル状に並べた画像に変換します。
‘feTurbulence’ 乱流
ノイズを使って炎や煙や雲のような模様の画像を生成します。(→ 詳細)
光源要素
‘feDistantLight’ 遠くの光
遠方にある(太陽のような)光源を表します。XYZ軸に沿った2つの角度で光源の方向を指定します。
‘fePointLight’ 点光源
一点にある(電球のような)光源を表します。右向きのX軸、下向きのY軸、手前に向いたZ軸の座標で光源の位置を指定します。
‘feSpotLight’ スポットライト
円錐状の光を出す光源を表します。右向きのX軸、下向きのY軸、手前に向いたZ軸の座標で光源の位置と、光源の向く先の位置と、その位置への光の集中度と、光の円錐(コーン)の角度を指定します。