Partager via


Remplissage d'une forme avec la mosaïque d'une image

À l'instar de carreaux d'un sol carrelé, des images rectangulaires peuvent être placées côte à côte pour remplir une forme (en mosaïque). Pour remplir avec une mosaïque l'intérieur d'une forme, utilisez une brosse texturée. Lorsque vous générez un objet TextureBrush, l'un des arguments passés au constructeur est un objet Image. Lorsque vous utilisez la brosse texturée pour peindre l'intérieur d'une forme, la forme est remplie par des copies répétées de cette image.

La propriété WrapMode (mode habillage) de l'objet TextureBrush détermine l'orientation de l'image lors de sa répétition dans une grille rectangulaire. Toutes les images de la mosaïque dans la grille peuvent avoir la même orientation, ou vous pouvez prévoir une rotation d'une position d'image à la suivante. La rotation peut être horizontale, verticale ou les deux. Les exemples suivants illustrent une mosaïque avec différents types de rotation.

Mosaïque d'une image

Cet exemple utilise l'image 75 × 75 suivante pour remplir en mosaïque un rectangle de 200 × 200.

Dim image = New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))
[C#]
Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));

L'illustration suivante montre comment la mosaïque de l'image remplit le rectangle. Notez que toutes les images de la mosaïque ont la même orientation, sans rotation.

Rotation horizontale de l'image dans la mosaïque

Cet exemple utilise la même image 75 × 75 pour remplir un rectangle de 200 × 200. Le mode habillage prévoit une rotation horizontale de l'image.

Dim image = New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
tBrush.WrapMode = WrapMode.TileFlipX
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))
[C#]
Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
tBrush.WrapMode = WrapMode.TileFlipX;
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));

L'illustration suivante montre comment la mosaïque de l'image remplit le rectangle. Notez que lors du passage d'une image à la suivante dans une ligne donnée, l'image effectue une rotation horizontale.

Rotation verticale de l'image dans la mosaïque

Cet exemple utilise la même image 75 × 75 pour remplir un rectangle de 200 × 200. Le mode habillage prévoit une rotation verticale de l'image.

Dim image = New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
tBrush.WrapMode = WrapMode.TileFlipY
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))
[C#]
Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
tBrush.WrapMode = WrapMode.TileFlipY;
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));

L'illustration suivante montre comment la mosaïque de l'image remplit le rectangle. Notez que lors du passage d'une image à la suivante dans une colonne donnée, l'image effectue une rotation verticale.

Rotations horizontale et verticale de l'image dans la mosaïque

Cet exemple utilise la même image 75 × 75 pour remplir en mosaïque un rectangle de 200 × 200. Le mode habillage prévoit des rotations horizontale et verticale de l'image.

Dim image = New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
tBrush.WrapMode = WrapMode.TileFlipXY
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))
[C#]
Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
tBrush.WrapMode = WrapMode.TileFlipXY;
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));

L'illustration suivante montre comment la mosaïque de l'image remplit le rectangle. Notez que lors du passage d'une image à la suivante dans une ligne donnée, l'image effectue une rotation horizontale, et lorsque vous passez d'une image à la suivante dans une colonne donnée, l'image effectue une rotation verticale.