次の方法で共有


軸に沿ったクリップ長方形でクリップする方法

このトピックでは、軸に沿ったクリップ四角形を使用して画像をクリップする方法について説明します。 クリップされた画像を作成するには、クリッピング領域として長方形構造を作成します。 このアプローチは、コンテンツ境界を持つレイヤーを使用するよりも効率的です。 詳細については、「レイヤーの概要」を参照してください。

軸に沿ったクリップ長方形でクリップするには

  1. リソースから元の画像を読み込みます。 ビットマップを読み込む方法については、「リソースからビットマップを読み込む方法」を参照してください。

  2. 四角形を指定するには、 ID2D1RenderTarget::PushAxisAlignedClip を呼び出します。 レンダリング コマンドは長方形にクリップされます。

  3. 元のイメージをペイントします。

  4. ID2D1RenderTarget::PopAxisAlignedClip を呼び出して、レンダー ターゲットから最後の軸揃えクリップを削除します。

たとえば、次の図では、左側の元のビットマップは 200 x 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 リファレンス