高斯模糊效果
使用高斯模糊效果,根據高斯函數在整個輸入影像上建立模糊。
您可以使用這個效果來建立光暈和陰影,並使用 複合 效果將結果套用至原始影像。 對於醒目提示和陰影等篩選條件,它很有用。 您可以使用這個效果的輸出來輸入光源效果,例如 反射光源 或 擴散光源 效果,因為Alpha色板也會模糊,而且光源效果也會使用Alpha色板來判斷表面幾何為高度地圖。
內建 陰影 效果會使用此效果。
這個效果的 CLSID 是CLSID_D2D1GaussianBlur。
範例影像
以前 |
---|
在效果之前 ![]() |
後 |
在轉換之後 ![]() |
ComPtr<ID2D1Effect> gaussianBlurEffect;
m_d2dContext->CreateEffect(CLSID_D2D1GaussianBlur, &gaussianBlurEffect);
gaussianBlurEffect->SetInput(0, bitmap);
gaussianBlurEffect->SetValue(D2D1_GAUSSIANBLUR_PROP_STANDARD_DEVIATION, 3.0f);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(gaussianBlurEffect.Get());
m_d2dContext->EndDraw();
效果屬性
顯示名稱和索引列舉 | 描述 |
---|---|
StandardDeviation D2D1_GAUSSIANBLUR_PROP_STANDARD_DEVIATION |
要套用至影像的模糊量。 您可以將標準偏差乘以 3,以計算核心的模糊半徑。 標準偏差和模糊半徑的單位都是 DIP。 零 DIP 的值會完全停用此效果。 此類型為 FLOAT。 默認值為 3.0f。 |
優化 D2D1_GAUSSIANBLUR_PROP_OPTIMIZATION |
優化模式。 如需詳細資訊,請參閱 優化模式。 此類型為D2D1_GAUSSIANBLUR_OPTIMIZATION。 預設值為 D2D1_GAUSSIANBLUR_OPTIMIZATION_BALANCED。 |
BorderMode D2D1_GAUSSIANBLUR_PROP_BORDER_MODE |
用來計算影像框線、軟式或硬式的模式。 如需詳細資訊,請參閱 框線模式。 類型為 D2D1_GAUSSIANBLUR_BORDER_MODE。 預設值為 D2D1_BORDER_MODE_SOFT。 |
優化模式
名字 | 描述 |
---|---|
D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED | 套用內部優化,例如在相對較小的半徑進行預先調整。 使用線性篩選。 |
D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED | 使用與速度模式相同的優化閾值,但使用三線性篩選。 |
D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY | 只使用具有大型模糊弧度的內部優化,其中近似值較不可見。 使用三線性篩選。 |
框線模式
名字 | 描述 |
---|---|
D2D1_BORDER_MODE_SOFT | 效果會以透明黑色圖元填補影像,因為它套用模糊核心,導致柔邊。 |
D2D1_BORDER_MODE_HARD | 效果會將輸出限制為輸入影像的大小。 當效果套用模糊核心時,它會使用鏡像類型框線轉換來擴充輸入影像,以供輸入界限外的樣本使用。 |
輸出點陣圖
此效果的輸出可以大於根據模糊半徑和框線模式的輸入位圖。 如果框線模式設定為D2D1_BORDER_MODE_SOFT輸出位圖的大小會隨著模糊核心的大小而增加,以圖元表示。 下表提供一個方程式,可讓您用來計算輸出點陣圖。
Output bitmap growth (X and Y) = StandardDeviation (DIPs)*6*((User DPI)/96)
因此,如果影像大小在每個方向增加 10 像素,則影像左上角會位於 (-5, -5),而右下角會位於 (105, 105)。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 適用於 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |Windows 市集應用程式] |
最低支援的伺服器 | 適用於 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |Windows 市集應用程式] |
頁眉 | d2d1effects.h |
圖書館 | d2d1.lib、dxguid.lib |