Partager via


Comment : remplir une forme avec une texture d'image

Vous pouvez remplir une forme fermée avec une texture à l’aide de la Image classe et de la TextureBrush classe.

Exemple

L’exemple suivant remplit un ellipse avec une image. Le code construit un Image objet, puis transmet l’adresse de cet Image objet en tant qu’argument à un TextureBrush constructeur. La troisième instruction met à l’échelle l’image, et la quatrième instruction remplit les points de suspension avec des copies répétées de l’image mise à l’échelle.

Dans le code suivant, la Transform propriété contient la transformation appliquée à l’image avant d’être dessinée. Supposons que l’image d’origine a une largeur de 640 pixels et une hauteur de 480 pixels. La transformation réduit l’image à 75×75 en définissant les valeurs de mise à l’échelle horizontale et verticale.

Remarque

Dans l’exemple suivant, la taille de l’image est 75×75, et la taille des points de suspension est de 150×250. Étant donné que l’image est inférieure à l’ellipse qu’elle remplit, l’ellipse est mosaïque avec l’image. Le mosaïque signifie que l’image est répétée horizontalement et verticalement jusqu’à ce que la limite de la forme soit atteinte. Pour plus d’informations sur le mosaïque, consultez How to : Tile a Shape with an Image.

Image image = new Bitmap("ImageFile.jpg");
TextureBrush tBrush = new TextureBrush(image);
tBrush.Transform = new Matrix(
   75.0f / 640.0f,
   0.0f,
   0.0f,
   75.0f / 480.0f,
   0.0f,
   0.0f);
e.Graphics.FillEllipse(tBrush, new Rectangle(0, 150, 150, 250));
Dim image As New Bitmap("ImageFile.jpg")
Dim tBrush As New TextureBrush(image)
tBrush.Transform = New Matrix( _
   75.0F / 640.0F, _
   0.0F, _
   0.0F, _
   75.0F / 480.0F, _
   0.0F, _
   0.0F)
e.Graphics.FillEllipse(tBrush, New Rectangle(0, 150, 150, 250))

Compilation du code

L’exemple précédent est conçu pour une utilisation avec Windows Forms et nécessite PaintEventArgse, qui est un paramètre du Paint gestionnaire d’événements.

Voir aussi