次の方法で共有


境界線の効果

境界線効果を使用して、エッジからイメージを拡張します。 この効果を使用すると、イメージの端からピクセルを繰り返したり、イメージの反対側の端からピクセルをラップしたり、ビットマップ境界を越えてピクセルをミラーしてビットマップ領域を拡張したりできます。

この効果の 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

ID2D1Effect