裁剪效果

使用裁剪效果输出图像的指定区域。

此效果的 CLSID CLSID_D2D1Crop。

示例图像

以前
在效果之前 图像。
转换后 图像。
ComPtr<ID2D1Effect> cropEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Crop, &cropEffect);

cropEffect->SetInput(0, bitmap);
cropEffect->SetValue(D2D1_CROP_PROP_RECT, D2D1::RectF(0.0f, 0.0f, 256.0f, 192.0f));

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

效果属性

显示名称和索引枚举 类型和默认值 描述
矩形
D2D1_VECTOR_4F
要裁剪的区域在窗体中指定为矢量(左、上、宽度、高度)。
D2D1_CROP_PROP_RECT
{-FLT_MAX、-FLT_MAX、FLT_MAX、FLT_MAX}
这些单位以 DIP 为单位。
注意:
如果 Rect 与输入图像的边缘边界重叠,将截断该矩形。
D2D1_CROP_PROP_BORDER_MODE
D2D1_BORDER_MODE
D2D1_BORDER_MODE_SOFT
  • D2D1_BORDER_MODE_SOFT:如果裁剪矩形落在小数像素坐标上,该效果将应用抗锯齿,这会导致软边缘。
  • D2D1_BORDER_MODE_HARD:如果裁剪矩形落在小数像素坐标上,效果固定会导致硬边缘。

输出位图

此效果的输出是 Rect 属性的大小。 长度和宽度为计算

在此处使用公式进行模拟:

输出长度(以像素为单位=(Rect.Right-Rect.Left)*(用户的 DPI/96)
输出高度(以像素为单位=(Rect.Bottom-Rect.Top)*(用户的 DPI/96)

要求

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

ID2D1Effect