共用方式為


位移地圖效果

使用位移地圖效果,藉由第二個輸入影像的強度值來取代輸入影像的圖元。

此效果的 CLSID CLSID_D2D1DisplacementMap。

範例影像

之前
效果之前的影像。
After
轉換之後的影像。
ComPtr<ID2D1Effect> displacementMapEffect;
m_d2dContext->CreateEffect(CLSID_D2D1DisplacementMap, &displacementMapEffect);

displacementMapEffect->SetInput(0, bitmap);
displacementMapEffect->SetValue(D2D1_DISPLACEMENTMAP_PROP_SCALE, 100.0f);

// The second input of the displacement effect determines how the input image is transformed.
// For this example, we will use a turbulence effect as the second input to randomly distort the image.
ComPtr<ID2D1Effect> turbulenceEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Turbulence, &turbulenceEffect);
displacementMapEffect->SetInputEffect(1, turbulenceEffect.Get());

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

輸出中圖元的位置是使用此公式來決定:

C' (x,y) =C (x+ scale* (XChannelSelector (位移點陣圖 (x,y) ) -0.5) (y+ scale* (YChannelSelector (位移點陣圖 (x,y) ) -0.5) )

其中:

C (x、y) 是 (x、y) 的輸出圖元。
C (x、y) 是 (x、y) 的輸入圖元。
位移點陣圖 (x、y) 是位移圖元濃度指定的座標
XChannelSelector 會從位移點陣圖中選取的 RGBA 通道強度,而位移點陣圖會以 X 方向換行輸入影像。
YChannelSelector 會從位移點陣圖中選取的 RGBA 通道強度,而位移點陣圖會以 Y 方向換行輸入影像。

效果會根據縮放屬性和位移影像的濃度,重新取樣輸入影像。 如果從輸入影像中的圖元之間取樣,它會使用雙向插補。

此效果適用于直接和預先乘法的 Alpha 影像。 輸出 Alpha 格式與輸入格式相同。

效果屬性

顯示名稱和索引列舉 類型和預設值 描述
調整
D2D1_DISPLACEMENTMAP_PROP_SCALE
FLOAT
0.0f
從位移影像乘以選取通道的強度。 您設定這個屬性越高,效果就越能換行圖元
XChannelSelect
D2D1_DISPLACEMENTMAP_PROP_X_CHANNEL_SELECT
D2D1_CHANNEL_SELECTOR
D2D1_CHANNEL_SELECTOR_A
效果會從這個色彩色板擷取強度,並用它來以 X 方向空間取代影像。 如需詳細資訊 ,請參閱色彩通道
YChannelSelect
D2D1_DISPLACEMENTMAP_PROP_Y_CHANNEL_SELECT
D2D1_CHANNEL_SELECTOR
D2D1_CHANNEL_SELECTOR_A
效果會從這個色彩色板擷取強度,並用它來以 Y 方向空間換行影像。 如需詳細資訊 ,請參閱色彩通道

色彩色板

列舉型別 描述
D2D1_CHANNEL_SELECTOR_R 效果會從紅色通道擷取強度輸出。
D2D1_CHANNEL_SELECTOR_G 效果會從綠色通道擷取濃度輸出。
D2D1_CHANNEL_SELECTOR_B 效果會從藍色通道擷取濃度輸出。
D2D1_CHANNEL_SELECTOR_A 效果會從 Alpha 色板擷取濃度輸出。

輸出點陣圖

您可以使用下列方程式來判斷輸出點陣圖的大小上限:

輸出點陣圖? 圖元= (輸入點陣圖大小? (DIP) +縮放比例) * (使用者 DPI/96)

輸出點陣圖y 圖元= (輸入點陣圖大小y (DIP) + 縮放比例) * (使用者 DPI/96)

規格需求

需求
最低支援的用戶端 適用于 Windows 7 的Windows 8和平臺更新 [傳統型應用程式 |Windows 市集應用程式]
最低支援的伺服器 適用于 Windows 7 的Windows 8和平臺更新 [傳統型應用程式 |Windows 市集應用程式]
標頭 d2d1effects.h
程式庫 d2d1.lib、dxguid.lib

ID2D1Effect