Cómo recortar con un rectángulo de clip de Axis-Aligned

En este tema se describe cómo recortar una imagen con un rectángulo de clip alineado con el eje. Este enfoque solo produce clips rectangulares, ya que los límites de contenido están alineados con el eje del rectángulo. Este enfoque es más eficaz que usar capas con los límites de contenido. Para obtener más información, consulteInformación general sobre capas.

Para recortar con un rectángulo de clip alineado con el eje

  1. Cargue la imagen original desde un recurso. Para obtener información sobre cómo cargar un mapa de bits, vea Cómo cargar un mapa de bits desde un recurso.

  2. Llame a ID2D1RenderTarget::P ushAxisAlignedClip para especificar un rectángulo. Los comandos de representación se recortan en el rectángulo.

  3. Pintar la imagen original.

  4. Llame a ID2D1RenderTarget::P opAxisAlignedClip para quitar el último clip alineado con el eje del destino de representación.

Por ejemplo, en la ilustración siguiente, el mapa de bits original de la izquierda es de 200*130 píxeles. El mapa de bits de la derecha es el mapa de bits original recortado en el rectángulo de clip alineado con el eje. Las dimensiones son (20, 20) a (100, 100).

ilustración de un mapa de bits de pez dorado antes y después de recortar el mapa de bits

Para crear la imagen recortada, cree una estructura de rectángulo como área de recorte. Llame a PushAxisAlignedClip con el área de recorte y pinte la imagen original. Llame a PopAxisAlignedClip para quitar el clip del destino de representación. El código siguiente muestra cómo hacerlo.

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();

Referencia de Direct2D