裁剪效果

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

此效果的 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();

效果属性

显示名称和索引枚举 类型和默认值 描述
Rect
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