Procedimiento para rellenar una forma con una textura de imagen

Puede rellenar una forma cerrada con una textura mediante las clases Image y TextureBrush.

Ejemplo

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

En el código siguiente, la propiedad Transform incluye 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 siguiente, el tamaño de la imagen es de 75×75 y, el de la elipse, 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 la colocación en mosaico, vea Procedimientos para colocar en mosaico una forma con una imagen.

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

Compilar el código

El ejemplo anterior está diseñado para su uso con Windows Forms y requiere PaintEventArgse, que es un parámetro del controlador de eventos Paint.

Consulte también