Preenchendo uma forma com uma textura de imagem

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

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

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

No exemplo de código anterior, o método TextureBrush::SetTransform define a transformação que é aplicada à imagem antes de ser desenhada. Suponha que a imagem original possui 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 anterior, o tamanho da imagem é 75 ×75 e o tamanho da elipse é de 150 ×250. Como a imagem é menor do que a elipse que ela está preenchendo, a elipse é organizada lado a lado com a imagem. Lado a lado significa que a imagem é repetida horizontal e verticalmente até o limite da forma ser atingido. Para obter mais informações sobre blocos, consulte Tiling a Shape with an Image.