如何使用Axis-Aligned剪辑矩形进行剪辑

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

使用轴对齐的剪辑矩形进行剪辑

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

  2. 调用 ID2D1RenderTarget::P ushAxisAlignedClip 以指定矩形。 呈现命令将剪切到矩形。

  3. 画图原始图像。

  4. 调用 ID2D1RenderTarget::P opAxisAlignedClip ,从呈现目标中删除最后一个轴对齐的剪辑。

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

illustration of a goldfish bitmap before and after the bitmap is clipped

若要创建剪裁的图像,请创建一个矩形结构作为剪裁区域。 使用剪裁区域调用 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 参考