Condividi tramite


Riempimento di una forma con una trama di immagine

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

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

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

Nell'esempio di codice precedente il metodo TextureBrush::SetTransform imposta la trasformazione applicata all'immagine prima di disegnare. 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 precedente, le dimensioni dell'immagine sono 75 ×75 e le dimensioni dei puntini di sospensione sono 150 ×250. Poiché l'immagine è più piccola dei puntini di sospensione che sta riempiendo, i puntini di sospensione vengono riquadri con l'immagine. L'allineamento significa che l'immagine viene ripetuta orizzontalmente e verticalmente fino al raggiungimento del limite della forma. Per altre informazioni sulla tiling, vedere Tiling a Shape with an Image (Tiling a Shape with an Image).