カラー マトリックス効果
カラー マトリックス効果を使用して、ビットマップの RGBA 値を変更します。
この効果を使用すると、次のことができます。
- イメージからカラー チャネルを削除します。
- イメージ内の色を減らします。
- カラー チャネルをスワップします。
- カラー チャネルを結合します。
多くの組み込み効果は、効果の目的に合わせて最適化されたカラー マトリックスの特殊化です。 例としては、彩度、色相回転、セピア、温度と濃淡 があります。
この効果の CLSID はCLSID_D2D1ColorMatrix。
画像の例
次の例は、赤と青のチャネルを入れ替えるカラー マトリックス効果の入力画像と出力画像を示しています。
以前は |
---|
効果の前に画像を ![]() |
後 |
変換後にイメージを ![]() |
ComPtr<ID2D1Effect> colorMatrixEffect;
m_d2dContext->CreateEffect(CLSID_D2D1ColorMatrix, &colorMatrixEffect);
colorMatrixEffect->SetInput(0, bitmap);
D2D1_MATRIX_5X4_F matrix = D2D1::Matrix5x4F(0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0);
colorMatrixEffect->SetValue(D2D1_COLORMATRIX_PROP_COLOR_MATRIX, matrix);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(colorMatrixEffect.Get());
m_d2dContext->EndDraw();
この効果は、画像の RGBA 値に、次の式に示すように 5x4 の列主行列を乗算します。
マトリックス定義の例を
この効果は、直線的で事前に乗算されたアルファ画像に対して機能します。
Effect プロパティ
表示名とインデックス列挙 | 形容 |
---|---|
ColorMatrix D2D1_COLORMATRIX_PROP_COLOR_MATRIX |
浮動小数点値の 5x4 行列。 行列内の要素は境界付けされておらず、単位がありません。 既定値は ID マトリックスです。 型はD2D1_MATRIX_5X4_F。 既定値は Matrix5x4F(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0) です。 |
AlphaMode D2D1_COLORMATRIX_PROP_ALPHA_MODE |
出力のアルファ モード。 詳細については、「アルファ モードの」を参照してください。 型はD2D1_COLORMATRIX_ALPHA_MODE。 既定値は D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED です。 |
ClampOutput D2D1_COLORMATRIX_PROP_CLAMP_OUTPUT |
効果がグラフの次の効果に値を渡す前に、効果が色の値を 0 から 1 の間にクランプするかどうかを指定します。 効果は、アルファをプリ乗算する前に値をクランプします。 これを TRUE に設定すると、効果によって値がクランプされます。 これを FALSE に設定すると、効果は色の値をクランプしませんが、精度が十分に高くない場合は、他の効果と出力サーフェスによって値がクランプされる可能性があります。 型は BOOL です。 既定値は FALSE です。 |
アルファ モード
名前 | 形容 |
---|---|
D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED | この効果は、入力の前乗算を解除し、カラー マトリックスを適用し、出力を事前乗算します。 |
D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT | この効果により、カラー マトリックスが入力に直接適用され、出力が事前に乗算されることはありません。 |
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 7 用 Windows 8 およびプラットフォーム更新プログラム [デスクトップ アプリ |[Windows ストア アプリ] |
サポートされている最小サーバー | Windows 7 用 Windows 8 およびプラットフォーム更新プログラム [デスクトップ アプリ |[Windows ストア アプリ] |
ヘッダ | d2d1effects.h |
図書館 | d2d1.lib、dxguid.lib |