Remplissage d'une forme avec une texture d'image
Vous pouvez remplir une forme fermée avec une texture en utilisant la classe Image et la classe TextureBrush.
L'exemple suivant remplit une ellipse avec une image. Le code construit un objet Image puis passe l'adresse de cet objet Image comme argument à un constructeur TextureBrush. La troisième instruction dimensionne l'image, et la quatrième remplit l'ellipse avec des copies répétées de l'image dimensionnée.
Dim image = New Bitmap("ImageFile.jpg")
Dim tBrush As New TextureBrush(image)
tBrush.Transform = New Matrix( _
75F / 640F, _
0F, _
0F, _
75F / 480F, _
0F, _
0F)
e.Graphics.FillEllipse(tBrush, New Rectangle(0, 150, 150, 250))
[C#]
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));
Dans le code précédent, la propriété Transform contient la transformation qui est appliquée à l'image avant qu'elle soit dessinée. Supposons que l'image d'origine ait 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 dimensionnement horizontal et vertical.
Remarque Dans l'exemple précédent, la taille de l'image est de 75 × 75 et la taille de l'ellipse est de 150 × 250. Puisque l'image est plus petite que l'ellipse, cette dernière est remplie par une mosaïque de l'image. Une mosaïque correspond à une répétition horizontale et verticale de l'image jusqu'à ce que la limite de la forme soit atteinte. Pour plus d'informations sur le remplissage en mosaïque, consultez Remplissage d'une forme avec la mosaïque d'une image.