Freigeben über


Füllen einer Form mit einer Bildtextur

Sie können eine geschlossene Form mit einer Textur füllen, indem Sie die Image-Klasse und die TextureBrush-Klasse verwenden.

Im folgenden Beispiel wird eine Ellipse mit einem Bild gefüllt. Der Code erstellt ein Image-Objekt und übergibt dann die Adresse dieses Image-Objekts als Argument an einen TextureBrush-Konstruktor . Die dritte Code-Anweisung skaliert das Bild, und die vierte Anweisung füllt die Ellipse mit wiederholten Kopien des skalierten Bilds:

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));

Im vorherigen Codebeispiel legt die TextureBrush::SetTransform-Methode die Transformation fest, die auf das Bild angewendet wird, bevor es gezeichnet wird. Gehen Sie davon aus, dass das ursprüngliche Bild eine Breite von 640 Pixeln und eine Höhe von 480 Pixeln aufweist. Die Transformation verkleinern das Bild auf 75 ×75, indem die horizontalen und vertikalen Skalierungswerte festgelegt werden.

Hinweis

Im vorherigen Beispiel beträgt die Bildgröße 75 ×75 und die Ellipsengröße 150 ×250. Da das Bild kleiner als die Ellipse ist, die es ausfüllt, wird die Ellipse mit dem Bild gekachelt. Die Kachelung bedeutet, dass das Bild horizontal und vertikal vervielfältigt wird, bis die Grenze der Form erreicht wird. Weitere Informationen zum Kacheln finden Sie unter Kacheln einer Form mit einem Bild.