Partilhar via


Como: Preencher uma forma com uma textura de imagem

Você pode preencher uma forma fechada com uma textura usando a Image classe e a TextureBrush classe.

Exemplo

O exemplo a seguir preenche uma elipse com uma imagem. O código constrói um Image objeto e, em seguida, passa o endereço desse Image objeto como um argumento para um TextureBrush construtor. A terceira instrução escala a imagem, e a quarta instrução preenche a elipse com cópias repetidas da imagem dimensionada.

No código a seguir, a Transform propriedade contém a transformação que é aplicada à imagem antes de ser desenhada. Suponha que a imagem original tem uma largura de 640 pixels e uma altura de 480 pixels. A transformação reduz a imagem para 75×75 definindo os valores de dimensionamento horizontal e vertical.

Observação

No exemplo a seguir, o tamanho da imagem é 75×75 e o tamanho da elipse é 150×250. Como a imagem é menor do que a elipse que está preenchendo, a elipse é lado a lado com a imagem. O mosaico significa que a imagem é repetida horizontal e verticalmente até alcançar o limite da forma. Para obter mais informações sobre revestimento, consulte Como revestir uma forma com uma imagem.

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

Compilando o código

O exemplo anterior foi projetado para uso com o Windows Forms e requer PaintEventArgse, que é um parâmetro do manipulador de eventos Paint.

Ver também