お絵描きソフトInkscape(インクスケープ)の使い方を初級レベルから上級レベルまで広く紹介しています。
情報追加のリクエストや分かりにくい点があれば下のCONTACTフォームからどうぞ。

Inkscapeで使えるフィルタプリミティブ要素:feComposite

 このページでは、Inkscapeのフィルタエディタ上では「合成」と表示されるフィルタプリミティブ要素についてまとめます。

(2023.06.22更新)

feCompositeの概要

 feCompositeは、入力される2つの画像の同じ位置のピクセルの2つの値に対して、あらかじめ決められた演算を行い、その結果を変換後のピクセルとして出力します。

 feBlendもピクセル同士の演算を行うという点では似たフィルタプリミティブ要素ですが、feBlendがピクセルの明度、彩度、色相を混ぜることで合成しようとするものであるのに対して、feCompositeはピクセルの不透明度を使ってマスクをかけることで合成しようとするものだと理解すればよさそうです。

 feCompositeでは、演算子(operator)というパラメータを指定します。演算子には次のいずれかを指定できます。演算子以外にもK1~K4というパラメータも指定できるようにみえますが、これらは演算子として「計算」を指定したときだけ指定可能になります。

Over

 入力される2つ目の画像に1つ目の画像に単に重ねたものに変換します。

 次のような2つの画像を用意し、左を1つ目の画像、右を2つ目の画像としてfeCompositeに入力してみます。

 Overを演算子に指定した場合は、次のように単に重ねたものになります。


 なお、このとき1つ目の画像の端の部分が少しぼけるのですが、理由は分かっていません。

In

 入力される1つ目の画像の色で、かつ、2つ目の画像の不透明度となるピクセルを並べた画像に変換します。

 

Out

 入力される1つ目の画像の色で、かつ、2つ目の画像の不透明度を反転させた不透明度となるピクセルを並べた画像に変換します。

 

Atop

 入力される1つ目の画像の色で、かつ、2つ目の画像の不透明度となるピクセルを並べた画像に変換します。2つの画像が重なっていないところは2つ目の画像のピクセルになります。Inと違うのは、2つ目の画像で重なっていない領域が残るところです。

 

XOR

 入力される1つ目の画像の色で、かつ、2つ目の画像の不透明度を反転させた不透明度となるピクセルを並べた画像に変換します。2つの画像が重なっていないところは2つ目の画像のピクセルになります。Atopと違うのは、2つ目の画像の不透明度が反転している点です。

 

計算

 「K1*1つ目の画像*2つ目の画像+K2*1つ目の画像+K3*2つ目の画像+K4」という計算式でピクセル値を計算します。この計算式のK1~K4をフィルタエディタ上で追加のパラメータとして指定します。


 (参考:フィルタとは何か