Compartir a través de


Rellenar una forma con una textura de imagen

Puede rellenar una forma cerrada con una textura mediante la clase Image y la clase TextureBrush .

En el ejemplo siguiente se rellena una elipse con una imagen. El código construye un objeto Image y, a continuación, pasa la dirección de ese objeto Image como argumento a un constructor TextureBrush . La tercera instrucción de código escala la imagen y la cuarta instrucción rellena la elipse con copias repetidas de la imagen escalada:

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

En el ejemplo de código anterior, el método TextureBrush::SetTransform establece la transformación que se aplica a la imagen antes de dibujarla. Se da por hecho que la imagen original tiene un ancho de 640 píxeles y un alto de 480 píxeles. La transformación reduce la imagen a 75 ×75, estableciendo los valores de escalado horizontal y vertical.

Nota

En el ejemplo anterior, el tamaño de la imagen es 75 ×75 y el tamaño de la elipse es de 150 ×250. Dado que la imagen es más pequeña que la elipse que está rellenando, esta última se coloca en mosaico con la imagen. La colocación en mosaico significa que la imagen se repite horizontal y verticalmente hasta que se alcanza el límite de la forma. Para obtener más información sobre el mosaico, consulte Mosaico de una forma con una imagen.