Compartir a través de


Cómo recortar con un rectángulo de clip alineado con eje

En este tema se describe cómo recortar una imagen con un rectángulo de clip alineado con el eje. Este enfoque solo genera clips rectangulares, ya que los límites de contenido se alinean con el eje del rectángulo. Este enfoque es más eficaz que el uso de capas con los límites de contenido. Para más información, consulte la introducción a las capas.

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

  1. Cargue la imagen original de 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. Pinte 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 al 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