Procedura: riempire una forma con una trama basata su un'immagine
È possibile riempire una forma chiusa con una trama utilizzando le classi Image e TextureBrush.
Esempio
Nell'esempio riportato di seguito si riempie un'ellisse con un'immagine. Il codice costruisce un oggetto Image, quindi passa l'indirizzo di tale oggetto Image come argomento al costruttore TextureBrush. Con la terza istruzione vengono adatta le proporzioni dell'immagine, mentre con la quarta si riempie l'ellisse con copie ripetute dell'immagine riproporzionata.
Nel codice seguente la proprietà Transform contiene la trasformazione applicata all'immagine prima che venga disegnata. Si suppone che l'immagine originale abbia una larghezza di 640 pixel e un'altezza di 480 pixel. Con la trasformazione l'immagine viene ridotta a 75×75 impostando i valori di scala orizzontali e verticali.
Nota
Nell'esempio seguente le dimensioni dell'immagine sono pari a 75×75 e quelle dell'ellisse sono pari a 150×250- Poiché l'immagine è più piccola dell'ellisse da riempire, viene affiancata più volte nell'ellisse. L'affiancamento consiste nel ripetere l'immagine in orizzontale e in verticale fino al limite della forma. Per ulteriori informazioni sull'affiancamento, vedere Procedura: riempire una forma con immagini affiancate.
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))
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));
Compilazione del codice
L'esempio riportato in precedenza è stato creato per essere utilizzato con Windows Form e richiede PaintEventArgs e, un parametro del gestore eventi Paint.