Cómo: Rellenar una forma con una textura de imagen
Actualización: noviembre 2007
Las formas cerradas se pueden rellenar con una textura utilizando las clases Image y TextureBrush.
Ejemplo
En el siguiente ejemplo 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 ajusta el tamaño de la imagen y la cuarta rellena la elipse con varias copias de la imagen con ese tamaño.
En el código siguiente, la propiedad Transform contiene la transformación que se aplica a la imagen antes de que se dibuje. Imaginemos que la imagen original tiene un ancho de 640 píxeles y un alto de 480 píxeles. La transformación encoge la imagen a 75×75 estableciendo los valores de tamaño horizontal y vertical.
Nota: |
---|
En el ejemplo siguiente, el tamaño de la imagen es de 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 se va a rellenar, la imagen se dispone en mosaico dentro de la elipse. En una disposición en mosaico, la imagen se repite horizontal y verticalmente hasta alcanzar los límites de la forma. Para obtener más información sobre la disposición en mosaico, vea Cómo: Disponer una forma en mosaico con una imagen. |
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))
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));
Compilar el código
El ejemplo anterior está diseñado para formularios Windows Forms y requiere PaintEventArgs e, que es un parámetro del controlador de eventos Paint.