Partilhar via


Desenho, posicionamento e clonagem de imagens no GDI+

Você pode usar a classe Bitmap para carregar e exibir imagens rasterizadas e pode usar a classe Metafile para carregar e exibir imagens vetoriais. As classes Bitmap e Metafile herdam da classe Image. Para exibir uma imagem vetorial, você precisa de uma instância da classe Graphics e um Metafile. Para exibir uma imagem rasterizada, você precisa de uma instância da classe Graphics e um Bitmap. A instância da classe Graphics fornece o método DrawImage, que recebe o Metafile ou Bitmap como um argumento.

Tipos de arquivo e clonagem

O exemplo de código a seguir mostra como construir um Bitmap a partir do arquivo Climber.jpg e exibe o bitmap. O ponto de destino para o canto superior esquerdo da imagem, (10, 10), é especificado no segundo e terceiro parâmetros.

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

A ilustração a seguir mostra a imagem.

Exemplo de imagem

Você pode construir objetos Bitmap a partir de uma variedade de formatos de arquivos gráficos: BMP, GIF, JPEG, EXIF, PNG, TIFF e ICON.

O exemplo de código a seguir mostra como construir objetos Bitmap a partir de uma variedade de tipos de arquivo e, em seguida, exibe os bitmaps.

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)

A classe Bitmap fornece um método Clone que você pode usar para fazer uma cópia de um Bitmapexistente. O método Clone tem um parâmetro de retângulo de origem que você pode usar para especificar a parte do bitmap original que você deseja copiar. O exemplo de código a seguir mostra como criar um Bitmap clonando a metade superior de um Bitmapexistente. Em seguida, ambas as imagens são desenhadas.

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)

A ilustração a seguir mostra as duas imagens.

Cropping

Ver também