共用方式為


位移圖效果

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

這個效果的 CLSID 是CLSID_D2D1DisplacementMap。

範例影像

以前
在效果之前 影像。
在轉換之後 映像。
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+ 縮放*(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

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 色板擷取強度輸出。

輸出點陣圖

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

輸出點陣圖? Pixels=(輸入位圖大小?(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