Comment découper avec un rectangle de découpe aligné sur l’axe
Cette rubrique décrit comment découper une image avec un rectangle de découpe aligné sur l’axe. Cette approche ne produit que des découpes rectangulaires, car les limites du contenu sont alignées sur l’axe du rectangle. Cette approche est plus efficace que l’utilisation de couches avec les limites du contenu. Pour plus d'informations, consultez la Vue d’ensemble des couches.
Pour découper avec un rectangle de découpe aligné sur l’axe
Chargez l’image d’origine depuis une ressource. Pour plus d’informations sur la façon de charger une image bitmap, consultez Comment charger une image bitmap à partir d’une ressource.
Appelez ID2D1RenderTarget::PushAxisAlignedClip pour spécifier un rectangle. Les commandes de rendu sont découpées selon le rectangle.
Peignez l’image d’origine.
Appelez ID2D1RenderTarget::PopAxisAlignedClip pour supprimer la dernière découpe alignée sur l’axe du render target.
Par exemple, dans l’illustration suivante, le bitmap d’origine à gauche est de 200*130 pixels. Le bitmap à droite est le bitmap d’origine découpé selon le rectangle de découpe aligné sur l’axe. Les dimensions sont (20, 20) à (100, 100).
Pour créer l’image découpée, créez une structure de rectangle comme zone de découpe. Appelez PushAxisAlignedClip avec la zone de découpe et peignez l’image d’origine. Appelez PopAxisAlignedClip pour retirer la découpe du render target. Le code suivant montre comment procéder.
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();