通常、背景画像 (1 つの *ImageSource を使用して設定) と前景画像 (別の *ImageSource を使用して設定) があります。
ChromaKeyFilter (FilterEffect 内) は、画像に透明度を作成するモディファイアと見なすことができます。ここではフォアグラウンドに適用されます。これは基本的に、設定がピクセルに一致する場所ならどこでも透明な穴 (ゼロ アルファ) を切り取ります。
次に、BlendFilter (別のFilterEffect 内) が背景に適用され、前景の FilterEffect をその ForegroundSource として取得して、前景の画像をその上に配置します。
擬似コードを使用して例を試みます:
// Foreground chain:
var fg = new BufferImageSource(...);
var fgWithTransparency = new FilterEffect(fg)
{
Filters = new [] { new ChromaKeyFilter(...) }
};
// Background/compositing chain:
var bg = new BufferImageSource(...);
var bgAndFgComposited = new FilterEffect(bg)
{
Filters = new [] { new BlendFilter(fgWithTransparency) }
};
ここで bgFilterEffect をレンダリングすると、fg が上にブレンドされた bg を示す合成結果が得られます。