Procedimiento para disponer una forma en mosaico con una imagen

Igual que los mosaicos se pueden colocar unos junto a otros para cubrir un piso, las imágenes rectangulares se pueden colocar unas juntas a otras para rellenar (en mosaico) una forma. Para crear un mosaico en el interior de una forma, use un pincel de textura. Al construir un objeto TextureBrush, uno de los argumentos que se pasan al constructor es un objeto Image. 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 ajuste del objeto TextureBrush determina cómo se orienta la imagen, ya que se repite en una cuadrícula rectangular. Puede hacer que todos los mosaicos de la cuadrícula tengan la misma orientación o puede hacer que la imagen se voltee de una posición de cuadrícula a la siguiente. El volteo puede ser horizontal, vertical o ambos. En los ejemplos siguientes se muestra el mosaico con diferentes tipos de volteo.

Crear un mosaico de una imagen

  • En este ejemplo se usa la siguiente imagen 75×75 para crear un mosaico en un rectángulo 200×200.

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

  • En la ilustración siguiente se muestra cómo se rellena en mosaico el rectángulo con la imagen. Observe que todas las imágenes en el mosaico tienen la misma orientación; no hay volteo.

Rectángulo en mosaico con la imagen con la misma orientación en todos los mosaicos.

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

Voltear una imagen horizontalmente mientras se coloca en mosaico

  • En este ejemplo se usa la misma imagen 75×75 para rellenar un rectángulo 200×200. El modo de ajuste se establece para voltear la imagen horizontalmente. En la ilustración siguiente se muestra cómo se rellena en mosaico el rectángulo con la imagen. Observe que a medida que se mueve de un icono al siguiente en una fila determinada del mosaico, 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))

Voltear una imagen verticalmente mientras se coloca en mosaico

  • En este ejemplo se usa la misma imagen 75×75 para rellenar un rectángulo 200×200. El modo de ajuste 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))
    
    

Voltear una imagen horizontal y verticalmente mientras se coloca en mosaico

  • En este ejemplo se usa la misma imagen 75×75 para rellenar un rectángulo 200×200 en mosaico. El modo de ajuste se establece para voltear la imagen tanto horizontal como verticalmente. En la ilustración siguiente se muestra cómo se rellena en mosaico el rectángulo con la imagen. En el mosaico, observe 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 al siguiente 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