Freigeben über


So schneiden Sie mit einem achsenausgerichteten Clipping-Rechteck

In diesem Thema wird beschrieben, wie Sie ein Bild mit einem achsenausgerichteten Clipping-Rechteck ausschneiden. Mit diesem Ansatz werden nur rechteckige Clips erstellt, da die Inhaltsgrenzen an der Achse des Rechtecks ausgerichtet sind. Dieser Ansatz ist effizienter als die Verwendung von Ebenen mit den Inhaltsgrenzen. Weitere Informationen finden Sie in der Ebenen-Übersicht.

Schneiden mit einem achsenausgerichteten Clipping-Rechteck

  1. Laden Sie das Originalbild aus einer Ressource. Informationen zum Laden einer Bitmap finden Sie unter Laden einer Bitmap aus einer Ressource.

  2. Rufen Sie ID2D1RenderTarget::P ushAxisAlignedClip auf, um ein Rechteck anzugeben. Die Renderingbefehle werden auf das Rechteck zugeschnitten.

  3. Zeichnen Sie das Originalbild.

  4. Rufen Sie ID2D1RenderTarget::P opAxisAlignedClip auf, um den letzten achsenausgerichteten Clip aus dem Renderziel zu entfernen.

In der folgenden Abbildung beträgt die ursprüngliche Bitmap auf der linken Seite beispielsweise 200*130 Pixel. Die Bitmap auf der rechten Seite ist die ursprüngliche Bitmap, die auf das achsenausgerichtete Clipping-Rechteck zugeschnitten ist. Die Abmessungen sind (20, 20) bis (100, 100).

Abbildung eines Goldfisch-Bitmaps vor und nach dem Zuschneiden des Bitmaps

Um das zugeschnittene Bild zu erstellen, erstellen Sie eine rechteckige Struktur als Clippingbereich. Rufen Sie PushAxisAlignedClip mit dem Clippingbereich auf, und zeichnen Sie das ursprüngliche Bild. Rufen Sie PopAxisAlignedClip auf, um den Clip aus dem Renderziel zu entfernen. Dies wird im folgenden Code veranschaulicht.

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-Referenz