境界線の効果
境界線効果を使用して、エッジからイメージを拡張します。 この効果を使用すると、イメージの端からピクセルを繰り返したり、イメージの反対側の端からピクセルをラップしたり、ビットマップ境界を越えてピクセルをミラーしてビットマップ領域を拡張したりできます。
この効果の CLSID はCLSID_D2D1Border。
画像の例
次の例は、各モードを使用した境界線効果の出力を示しています。 出力サイズは無限ですが、これらの画像の例はサイズの 2 倍にトリミングされます。
ミラー
変更前 |
---|
クリック後 |
Clamp
変更前 |
---|
クリック後 |
ラップ
変更前 |
---|
クリック後 |
ComPtr<ID2D1Effect> borderEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Border, &borderEffect);
borderEffect->SetInput(0, bitmap);
borderEffect->SetValue(D2D1_BORDER_PROP_EDGE_MODE_X, D2D1_BORDER_EDGE_MODE_MIRROR);
borderEffect->SetValue(D2D1_BORDER_PROP_EDGE_MODE_Y, D2D1_BORDER_EDGE_MODE_MIRROR);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(borderEffect.Get());
m_d2dContext->EndDraw();
Effect プロパティ
表示名とインデックス列挙 | 説明 |
---|---|
エッジ モード X D2D1_BORDER_PROP_EDGE_MODE_X |
効果の X 方向のエッジ モード。 これをクランプ、ラップ、またはミラーに設定できます。 詳細については、「 Edge モード 」を参照してください。 型がD2D1_BORDER_EDGE_MODE。 既定値は D2D1_BORDER_EDGE_MODE_CLAMP です。 |
エッジ モード Y D2D1_BORDER_PROP_EDGE_MODE_Y |
効果の Y 方向のエッジ モード。 これをクランプ、ラップ、またはミラーに設定できます。 詳細については、「 Edge モード 」を参照してください。 型がD2D1_BORDER_EDGE_MODE。 既定値は D2D1_BORDER_EDGE_MODE_CLAMP です。 |
エッジ モード
表示名とインデックス列挙 | 説明 |
---|---|
Clamp D2D1_BORDER_EDGE_MODE_CLAMP |
画像の端からピクセルを繰り返します。 |
ラップ D2D1_BORDER_EDGE_MODE_WRAP |
画像の反対側の端のピクセルを使用します。 |
ミラー D2D1_BORDER_EDGE_MODE_MIRROR |
画像の端に関するピクセルを反映します。 |
出力ビットマップ
出力ビットマップ サイズは、0 サイズの入力イメージを除くすべての入力に対して無限です。 入力イメージの高さまたは幅が 0 の場合、出力サイズは 0 になります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |Windows ストア アプリ] |
サポートされている最小のサーバー | Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |Windows ストア アプリ] |
ヘッダー | d2d1effects.h |
ライブラリ | d2d1.lib、dxguid.lib |