Dibujar, colocar y clonar imágenes en GDI+

Puede usar la clase Bitmap para cargar y mostrar imágenes de trama, y puede usar la clase Metafile para cargar y mostrar imágenes vectoriales. Las clases Bitmap y Metafile heredan de la clase Image. Para mostrar una imagen vectorial, necesita una instancia de la clase Graphics y un Metafile. Para mostrar una imagen de trama, necesita una instancia de la clase Graphics y un Bitmap. La instancia de la clase Graphics proporciona el método DrawImage, que recibe Metafile o Bitmap como argumento.

Tipos de archivo y clonación

En el ejemplo de código siguiente se muestra cómo construir un objeto Bitmap a partir del archivo Climber.jpg y muestra el mapa de bits. El punto de destino de la esquina superior izquierda de la imagen, (10, 10), se especifica en los parámetros segundo y tercero.

Bitmap myBitmap = new Bitmap("Climber.jpg");
myGraphics.DrawImage(myBitmap, 10, 10);
Dim myBitmap As New Bitmap("Climber.jpg")
myGraphics.DrawImage(myBitmap, 10, 10)

En la siguiente ilustración se muestra la imagen.

Ejemplo de imagen

Puede construir objetos Bitmap a partir de una variedad de formatos de archivo gráficos: BMP, GIF, JPEG, EXIF, PNG, TIFF e ICON.

En el ejemplo de código siguiente se muestra cómo construir objetos Bitmap a partir de una variedad de tipos de archivo y, después, se muestran los mapas de bits.

Bitmap myBMP = new Bitmap("SpaceCadet.bmp");
Bitmap myGIF = new Bitmap("Soda.gif");
Bitmap myJPEG = new Bitmap("Mango.jpg");
Bitmap myPNG = new Bitmap("Flowers.png");
Bitmap myTIFF = new Bitmap("MS.tif");

myGraphics.DrawImage(myBMP, 10, 10);
myGraphics.DrawImage(myGIF, 220, 10);
myGraphics.DrawImage(myJPEG, 280, 10);
myGraphics.DrawImage(myPNG, 150, 200);
myGraphics.DrawImage(myTIFF, 300, 200);
Dim myBMP As New Bitmap("SpaceCadet.bmp")
Dim myGIF As New Bitmap("Soda.gif")
Dim myJPEG As New Bitmap("Mango.jpg")
Dim myPNG As New Bitmap("Flowers.png")
Dim myTIFF As New Bitmap("MS.tif")

myGraphics.DrawImage(myBMP, 10, 10)
myGraphics.DrawImage(myGIF, 220, 10)
myGraphics.DrawImage(myJPEG, 280, 10)
myGraphics.DrawImage(myPNG, 150, 200)
myGraphics.DrawImage(myTIFF, 300, 200)

La clase Bitmap proporciona un método Clone que puede usar para realizar una copia de un Bitmap existente. El método Clone tiene un parámetro de rectángulo de origen que puede usar para especificar la parte del mapa de bits original que quiere copiar. En el ejemplo de código siguiente se muestra cómo crear un Bitmap clonando la mitad superior de un Bitmap existente. Después, se dibujan ambas imágenes.

Bitmap originalBitmap = new Bitmap("Spiral.png");
Rectangle sourceRectangle = new Rectangle(0, 0, originalBitmap.Width,
   originalBitmap.Height / 2);

Bitmap secondBitmap = originalBitmap.Clone(sourceRectangle,
   PixelFormat.DontCare);

myGraphics.DrawImage(originalBitmap, 10, 10);
myGraphics.DrawImage(secondBitmap, 150, 10);
Dim originalBitmap As New Bitmap("Spiral.png")
Dim sourceRectangle As New Rectangle(0, 0, originalBitmap.Width, _
   CType(originalBitmap.Height / 2, Integer))

Dim secondBitmap As Bitmap = originalBitmap.Clone(sourceRectangle, _
   PixelFormat.DontCare)

myGraphics.DrawImage(originalBitmap, 10, 10)
myGraphics.DrawImage(secondBitmap, 150, 10)

En la siguiente ilustración se muestran las dos imágenes.

Recorte

Consulte también