Desenhar, posicionar e clonar imagens
Você pode usar a classe Image para carregar e exibir imagens de varredura (bitmaps) e imagens de vetor (metarquivos). Para exibir uma imagem, você precisa de um objeto Graphics e um objeto Image . O objeto Graphics fornece o método Graphics::D rawImage , que recebe o endereço do objeto Image como um argumento.
O exemplo a seguir constrói um objeto Image do arquivo Climber.jpg e exibe a imagem. O ponto de destino do canto superior esquerdo da imagem (10, 10) é especificado no segundo e no terceiro parâmetros do método Graphics::D rawImage .
Image myImage(L"Climber.jpg");
myGraphics.DrawImage(&myImage, 10, 10);
O código anterior, juntamente com um arquivo específico, Climber.jpg, produziu a saída a seguir.
Você pode construir objetos Image de uma variedade de formatos de arquivo gráfico: BMP, GIF, JPEG, Exif, PNG, TIFF, WMF, EMF e ICON.
O exemplo a seguir constrói objetos Image de uma variedade de tipos de arquivo e exibe as imagens.
Image myBMP(L"SpaceCadet.bmp");
Image myEMF(L"Metafile1.emf");
Image myGIF(L"Soda.gif");
Image myJPEG(L"Mango.jpg");
Image myPNG(L"Flowers.png");
Image myTIFF(L"MS.tif");
myGraphics.DrawImage(&myBMP, 10, 10);
myGraphics.DrawImage(&myEMF, 220, 10);
myGraphics.DrawImage(&myGIF, 320, 10);
myGraphics.DrawImage(&myJPEG, 380, 10);
myGraphics.DrawImage(&myPNG, 150, 200);
myGraphics.DrawImage(&myTIFF, 300, 200);
A classe Image fornece um método Image::Clone que você pode usar para fazer uma cópia de um objeto Image, Metafile ou Bitmap existente. O método Clone está sobrecarregado na classe Bitmap e uma das variações tem um parâmetro de retângulo de origem que você pode usar para especificar a parte da imagem original que você deseja copiar. O exemplo a seguir cria um objeto Bitmap clonando a metade superior de um objeto Bitmap existente. Em seguida, ambas as imagens são exibidas.
Bitmap* originalBitmap = new Bitmap(L"Spiral.png");
RectF sourceRect(
0.0f,
0.0f,
(REAL)(originalBitmap->GetWidth()),
(REAL)(originalBitmap->GetHeight())/2.0f);
Bitmap* secondBitmap = originalBitmap->Clone(sourceRect, PixelFormatDontCare);
myGraphics.DrawImage(originalBitmap, 10, 10);
myGraphics.DrawImage(secondBitmap, 100, 10);
O código anterior, juntamente com um arquivo específico, Spiral.png, produziu a saída a seguir.