Condividi tramite


Come ritagliare con un rettangolo di ritaglio Axis-Aligned

Questo argomento descrive come ritagliare un'immagine con un rettangolo di ritaglio allineato all'asse. Questo approccio produce solo clip rettangolari, perché i limiti del contenuto sono allineati all'asse del rettangolo. Questo approccio è più efficiente rispetto all'uso dei livelli con i limiti del contenuto. Per altre informazioni, vederePanoramica dei livelli.

Per ritagliare con un rettangolo di ritaglio allineato all'asse

  1. Caricare l'immagine originale da una risorsa. Per informazioni su come caricare una bitmap, vedere Come caricare una bitmap da una risorsa.

  2. Chiamare ID2D1RenderTarget::P ushAxisAlignedClip per specificare un rettangolo. I comandi di rendering vengono ritagliati nel rettangolo.

  3. Disegnare l'immagine originale.

  4. Chiamare ID2D1RenderTarget::P opAxisAlignedClip per rimuovere l'ultima clip allineata all'asse dalla destinazione di rendering.

Ad esempio, nella figura seguente, la bitmap originale a sinistra è 200*130 pixel. La bitmap a destra è la bitmap originale ritagliata sul rettangolo di ritaglio allineato all'asse. Le dimensioni sono (da 20, 20) a (100, 100).

illustrazione di una bitmap di pesci d'oro prima e dopo il ritaglio della bitmap

Per creare l'immagine ritagliata, creare una struttura rettangolo come area di ritaglio. Chiamare PushAxisAlignedClip con l'area di ritaglio e disegnare l'immagine originale. Chiama PopAxisAlignedClip per rimuovere il clip dalla destinazione di rendering. A tal fine, osservare il codice indicato di seguito.

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

Informazioni di riferimento su Direct2D