Ausschneiden mit einem Axis-Aligned Cliprechteck
In diesem Thema wird beschrieben, wie Sie ein Bild mit einem achsenbündigen Cliprechteck ausschneiden. Dieser Ansatz erzeugt nur rechteckige Clips, 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 unterÜbersicht über Ebenen.
So klammern Sie mit einem achsenbündigen Cliprechteck
Laden Sie das ursprüngliche Bild aus einer Ressource. Informationen zum Laden einer Bitmap finden Sie unter Laden einer Bitmap aus einer Ressource.
Rufen Sie ID2D1RenderTarget::P ushAxisAlignedClip auf, um ein Rechteck anzugeben. Die Renderingbefehle werden an das Rechteck gekappt.
Zeichnen Sie das originale Bild.
Rufen Sie ID2D1RenderTarget::P opAxisAlignedClip auf, um den letzten achsenbündigen Clip aus dem Renderziel zu entfernen.
In der folgenden Abbildung ist die ursprüngliche Bitmap auf der linken Seite beispielsweise 200*130 Pixel. Die Bitmap auf der rechten Seite ist die ursprüngliche Bitmap, die an das achsenorientierte Cliprechteck gekappt wurde. Die Dimensionen sind (20, 20) bis (100, 100).
Um das abgeschnittene Bild zu erstellen, erstellen Sie eine Rechteckstruktur als Abschneidebereich. Rufen Sie PushAxisAlignedClip mit dem Clippingbereich auf, und zeichnen Sie das Originalbild. 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();
Zugehörige Themen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für