Compartir a través de


Cómo rellenar una forma con una textura de imagen

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

Ejemplo

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

En el código siguiente, la Transform propiedad contiene la transformación que se aplica a la imagen antes de dibujarla. Supongamos 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 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, la imagen se repite sobre la elipse. 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, vea Cómo: Mosaico de 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 Paint controlador de eventos.

Consulte también