Procedura: riempire una forma con una trama basata su un'immagine

È possibile riempire una forma chiusa con una trama usando la Image classe e la TextureBrush classe .

Esempio

Nell'esempio seguente viene riempita un'ellisse con un'immagine. Il codice costruisce un Image oggetto e quindi passa l'indirizzo di tale Image oggetto come argomento a un TextureBrush costruttore. La terza istruzione ridimensiona l'immagine e la quarta istruzione riempie l'ellisse con copie ripetute dell'immagine ridimensionata.

Nel codice seguente la Transform proprietà contiene la trasformazione applicata all'immagine prima che venga disegnata. Si supponga che l'immagine originale abbia una larghezza di 640 pixel e un'altezza di 480 pixel. La trasformazione riduce l'immagine a 75×75 impostando i valori di ridimensionamento orizzontale e verticale.

Nota

Nell'esempio seguente le dimensioni dell'immagine sono 75×75 e le dimensioni dell'ellisse sono pari a 150×250. Poiché l'immagine è più piccola dell'ellisse che sta riempiendo, l'ellisse viene affiancata con l'immagine. L'affiancamento indica che l'immagine viene ripetuta in senso orizzontale e verticale fino a raggiungere il limite della forma. Per altre informazioni sull'affiancamento, vedere Procedura: Affiancare una forma con un'immagine.

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

Compilazione del codice

L'esempio precedente è progettato per l'uso con Windows Form e richiede PaintEventArgse, un parametro del gestore eventi Paint.

Vedi anche