排量地图效果

使用排量地图效果将输入图像的像素替换为第二个输入图像的强度值。

此效果的 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 通道中提取强度输出。

输出位图

可以使用以下公式确定输出位图的最大大小:

输出位图? Pixel=(输入位图大小?)DIP)+Scale*(用户 DPI/96)

输出位图y 像素=(输入位图大小y(DIP) + 比例)*(用户 DPI/96)

要求

要求 价值
支持的最低客户端 适用于 Windows 7 的 Windows 8 和平台更新 [桌面应用 |Windows 应用商店应用]
支持的最低服务器 适用于 Windows 7 的 Windows 8 和平台更新 [桌面应用 |Windows 应用商店应用]
页眉 d2d1effects.h
图书馆 d2d1.lib、dxguid.lib

ID2D1Effect