Remplissage d’une forme avec une texture d’image
Vous pouvez remplir une forme fermée avec une texture à l’aide de la classe Image et de la classe TextureBrush .
L’exemple suivant remplit une ellipse avec une image. Le code construit un objet Image , puis transmet l’adresse de cet objet Image en tant qu’argument à un constructeur TextureBrush . La troisième instruction de code met à l’échelle l’image, et la quatrième instruction remplit l’ellipse avec des copies répétées de l’image mise à l’échelle :
Image image(L"ImageFile.jpg");
TextureBrush tBrush(&image);
stat = tBrush.SetTransform(&Matrix(75.0/640.0, 0.0f, 0.0f,
75.0/480.0, 0.0f, 0.0f));
stat = graphics.FillEllipse(&tBrush,Rect(0, 150, 150, 250));
Dans l’exemple de code précédent, la méthode TextureBrush::SetTransform définit la transformation appliquée à l’image avant qu’elle ne soit 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.
Notes
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. Étant donné que l’image est plus petite que l’ellipse qu’elle remplit, l’ellipse est en 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 la mosaïne, consultez Mosaïsage d’une forme avec une image.