Dessin, positionnement et clonage d’images
Vous pouvez utiliser la classe image pour charger et afficher des images raster (bitmaps) et des images vectorielles (sous-fichiers). Pour afficher une image, vous avez besoin d’un objet Graphics et d’un objet image . L’objet Graphics fournit la méthode graphics ::D rawimage , qui reçoit l’adresse de l’objet image sous la forme d’un argument.
L’exemple suivant construit un objet image à partir du fichier Climber.jpg puis affiche l’image. Le point de destination pour l’angle supérieur gauche de l’image, (10, 10), est spécifié dans les deuxième et troisième paramètres de la méthode Graphics ::D rawimage .
Image myImage(L"Climber.jpg");
myGraphics.DrawImage(&myImage, 10, 10);
Le code précédent, ainsi qu’un fichier particulier, Climber.jpg, ont produit la sortie suivante.

Vous pouvez construire des objets image à partir de différents formats de fichiers graphiques : BMP, GIF, JPEG, EXIF, png, TIFF, WMF, EMF et Icon.
L’exemple suivant construit des objets image à partir de divers types de fichiers, puis affiche les images.
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);
La classe image fournit une méthode image :: Clone que vous pouvez utiliser pour effectuer une copie d’une image, d’un métafichierou d’un objet bitmap existant. La méthode clone est surchargée dans la classe bitmap , et l’une des variantes a un paramètre rectangle source que vous pouvez utiliser pour spécifier la partie de l’image d’origine que vous souhaitez copier. L’exemple suivant crée un objet bitmap en clonant la moitié supérieure d’un objet bitmap existant. Les deux images sont alors affichées.
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);
Le code précédent, ainsi qu’un fichier particulier, Spiral.png, ont produit la sortie suivante.
