如何使用轴对齐的剪裁矩形剪裁

本主题介绍如何使用轴对齐的剪裁矩形剪裁图像。 这种方法只生成矩形片段,因为内容边界与矩形的轴对齐。 这种方法比使用具有内容边界的层更有效。 有关详细信息,请参阅图层概述

如何使用轴对齐的剪裁矩形剪裁

  1. 从资源加载原始图像。 有关如何加载位图的信息,请参阅如何从资源中加载位图

  2. 调用 ID2D1RenderTarget::PushAxisAlignedClip 以指定矩形。 渲染命令被剪裁到矩形。

  3. 绘制原始图像。

  4. 调用 ID2D1RenderTarget::PopAxisAlignedClip 从渲染目标中删除最后一个轴对齐的片段。

例如,在下图中,左侧的原始位图为 200*130 像素。 右侧的位图是剪裁到轴对齐的剪裁矩形的原始位图。 维度为 (20, 20) 到 (100, 100)。

剪裁位图前后的金鱼位图的图示

若要创建剪裁的图像,请创建一个矩形结构作为剪裁区域。 使用剪裁区域调用 PushAxisAlignedClip,并绘制原始图像。 调用 PopAxisAlignedClip 从渲染目标中删除片段。 下面的代码演示如何执行此操作。

pRT->PushAxisAlignedClip(
    D2D1::RectF(20, 20, 100, 100),
    D2D1_ANTIALIAS_MODE_PER_PRIMITIVE
    );

pRT->FillRectangle(D2D1::RectF(0, 0, 200, 133), m_pOriginalBitmapBrush);
pRT->PopAxisAlignedClip();

Direct2D 参考