方向ぼかし効果

方向ぼかし効果は、特定の方向にぼかしを歪めることができる点を除き、 ガウス ぼかしに似ています。 この効果を使用すると、画像が動きをしているかのように見えたり、アニメーション化された画像を強調したりできます。

この効果の CLSID はCLSID_D2D1DirectionalBlur。

画像の例

変更前
効果の前の画像。
クリック後
変換後のイメージ。
ComPtr<ID2D1Effect> directionalBlurEffect;
m_d2dContext->CreateEffect(CLSID_D2D1DirectionalBlur, &directionalBlurEffect);

directionalBlurEffect->SetInput(0, bitmap);
directionalBlurEffect->SetValue(D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION, 7.0f);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(directionalBlurEffect.Get());
m_d2dContext->EndDraw();

効果のプロパティ

表示名とインデックス列挙 説明
StandardDeviation
D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION
画像に適用するぼかしの量。 標準偏差に 3 を乗算することで、カーネルのぼかし半径を計算できます。 標準偏差とぼかし半径の両方の単位は、DIP です。 値が 0 の DIP を指定すると、この効果は無効になります。 型は FLOAT です。
既定値は 3.0f です。
Angle
D2D1_DIRECTIONALBLUR_PROP_ANGLE
x 軸に対するぼかしの角度 (反時計回りの方向)。 単位は度単位で指定します。
ぼかしカーネルは、 最初にガウスぼかし 効果と同じプロセスを使用して生成されます。 その後、カーネル値はぼかし角度に従って変換されます。
型は FLOAT です。
既定値は 0.0f です。
最適化
D2D1_DIRECTIONALBLUR_PROP_OPTIMIZATION
最適化モード。 詳細については、「 最適化モード 」を参照してください。
型がD2D1_DIRECTIONALBLUR_OPTIMIZATION。
既定値は D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED です。
BorderMode
D2D1_DIRECTIONALBLUR_PROP_BORDER_MODE
イメージの境界線を計算するために使用されるモード (ソフトまたはハード)。 詳細については、「 罫線モード 」を参照してください。
型がD2D1_BORDER_MODE。
既定値は D2D1_BORDER_MODE_SOFT です。

最適化モード

Name 説明
D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED 比較的小さい半径での事前スケーリングなどの内部最適化を適用します。 線形フィルター処理を使用します。
D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED 速度モードと同じ最適化しきい値を使用しますが、三線フィルター処理を使用します。
D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY 近似値が表示される可能性が低い、大きなぼかし半径を持つ内部最適化のみを使用します。 三線フィルター処理を使用します。

罫線モード

Name 説明
D2D1_BORDER_MODE_SOFT 効果は、ぼかしカーネルを適用すると、透明な黒ピクセルで画像を埋め込み、ソフトエッジになります。
D2D1_BORDER_MODE_HARD 効果は、入力画像のサイズに出力をクランプします。 効果がぼかしカーネルを適用すると、入力境界外のサンプルに対してミラー型の境界線変換で入力イメージが拡張されます。

出力ビットマップ

出力ビットマップのサイズは、標準偏差、効果の角度、および境界線モードに基づいて大きくなります。 境界線モードが D2D1_BORDER_MODE_SOFT に設定されている場合、出力ビットマップのサイズは、ピクセル単位で表されるぼかしカーネルのサイズによって大きくなります。 これらの数式を使用して、出力ビットマップのサイズを計算できます。

要件
出力ビットマップの増加 X StandardDeviation (DIP) * 6 * ((ユーザー DPI) / 96) * cos(Angle))
出力ビットマップの増加 Y StandardDeviation (DIP) * 6 * ((ユーザー DPI) / 96) * sin(Angle))

要件

要件
サポートされている最小のクライアント Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |Windows ストア アプリ]
サポートされている最小のサーバー Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |Windows ストア アプリ]
Header d2d1effects.h
ライブラリ d2d1.lib、dxguid.lib

ID2D1Effect