Compartir a través de


Cómo Usar una Imagen para Rellenar una Forma

Al igual que los mosaicos se pueden colocar entre sí para cubrir un piso, las imágenes rectangulares se pueden colocar entre sí para rellenar (mosaico) una forma. Para embaldosar el interior de una figura, use un pincel de textura. Al construir un TextureBrush objeto, uno de los argumentos que se pasan al constructor es un Image objeto . Cuando se usa el pincel de textura para pintar el interior de una forma, la forma se rellena con copias repetidas de esta imagen.

La propiedad de modo de envoltura del TextureBrush determina cómo se orienta la imagen al repetirse en una cuadrícula rectangular. Puede hacer que todos los azulejos de la cuadrícula tengan la misma orientación, o puede hacer que la imagen se voltee de una posición a la siguiente en la cuadrícula. El volteo puede ser horizontal, vertical o ambos. En los ejemplos siguientes se muestra el mosaico con diferentes tipos de volteo.

Para mosaicar/repetir una imagen

  • En este ejemplo se utiliza la siguiente imagen de 75×75 para azulejar un rectángulo de 200×200.

Imagen de mosaico que muestra una casa roja y un árbol.

  • En la ilustración siguiente se muestra cómo se coloca el rectángulo en mosaico con la imagen. Tenga en cuenta que todos los iconos tienen la misma orientación; no hay volteo.

Un rectángulo en mosaico con la imagen en la misma orientación para todos los azulejos.

Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
Dim image As New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))

Para voltear una imagen horizontalmente mientras se aplica un patrón de mosaico

  • En este ejemplo se usa la misma imagen de 75×75 para rellenar un rectángulo 200×200. El modo de envoltura se establece para voltear la imagen horizontalmente. En la ilustración siguiente se muestra cómo se coloca el rectángulo en mosaico con la imagen. Tenga en cuenta que a medida que se mueve de una baldosa a la siguiente en una fila determinada, la imagen se voltea horizontalmente.

Rectángulo en mosaico con la imagen volteada horizontalmente.

Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
tBrush.WrapMode = WrapMode.TileFlipX;
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
Dim image As New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
tBrush.WrapMode = WrapMode.TileFlipX
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))

Para voltear una imagen verticalmente durante la colocación en mosaico

  • En este ejemplo se usa la misma imagen de 75×75 para rellenar un rectángulo 200×200. El modo de envoltura se establece para voltear la imagen verticalmente.

    Image image = new Bitmap("HouseAndTree.gif");
    TextureBrush tBrush = new TextureBrush(image);
    Pen blackPen = new Pen(Color.Black);
    tBrush.WrapMode = WrapMode.TileFlipY;
    e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
    e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
    
    Dim image As New Bitmap("HouseAndTree.gif")
    Dim tBrush As New TextureBrush(image)
    Dim blackPen As New Pen(Color.Black)
    tBrush.WrapMode = WrapMode.TileFlipY
    e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
    e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))
    
    

Para voltear una imagen horizontalmente y verticalmente mientras se hace un mosaico

  • En este ejemplo se usa la misma imagen de 75×75 para colocar un rectángulo de 200×200. El modo de envoltura se establece para voltear la imagen tanto horizontal como verticalmente. En la ilustración siguiente se muestra cómo el rectángulo se cubre con la imagen. Tenga en cuenta que a medida que se mueve de un icono al siguiente de una fila determinada, la imagen se voltea horizontalmente y, a medida que se mueve de un icono a otro en una columna determinada, la imagen se voltea verticalmente.

Rectángulo en mosaico con la imagen volteada horizontal y verticalmente.

Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
tBrush.WrapMode = WrapMode.TileFlipXY;
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
Dim image As New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
tBrush.WrapMode = WrapMode.TileFlipXY
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))

Consulte también