Freigeben über


Zeichnen, Positionieren und Klonen von Bildern

Sie können die Image Klasse verwenden, um Rasterbilder (Bitmaps) und Vektorbilder (Metadateien) zu laden und anzuzeigen. Zum Anzeigen eines Bilds benötigen Sie ein Graphics-Objekt und ein Image--Objekt. Das Graphics-Objekt stellt die Methode Graphics::DrawImage bereit, die die Adresse des Image--Objekts als Argument erhält.

Im folgenden Beispiel wird ein Image- -Objekt aus der Datei Climber.jpg erstellt und anschließend das Bild angezeigt. Der Zielpunkt für die obere linke Ecke des Bilds (10, 10) wird in den zweiten und dritten Parametern der Graphics::DrawImage---Methode angegeben.

Image myImage(L"Climber.jpg");
myGraphics.DrawImage(&myImage, 10, 10);

Der vorangehende Code zusammen mit einer bestimmten Datei Climber.jpghat die folgende Ausgabe erzeugt.

Screenshot eines Fensters mit einem Foto-

Sie können Bild- Objekte aus einer Vielzahl von Grafikdateiformaten erstellen: BMP, GIF, JPEG, Exif, PNG, TIFF, WMF, EMF und ICON.

Im folgenden Beispiel werden Image- Objekte aus einer Vielzahl von Dateitypen erstellt und anschließend die Bilder angezeigt.

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

Die Image-Klasse stellt eine Image::Clone Methode bereit, mit der Sie eine Kopie einer vorhandenen Image-, Metadatei-oder Bitmap--Objekt erstellen können. Die Clone-Methode wird in der Bitmap Klasse überladen, und eine der Variationen weist einen Quellrechteckparameter auf, mit dem Sie den Teil des ursprünglichen Bilds angeben können, den Sie kopieren möchten. Im folgenden Beispiel wird ein Bitmap--Objekt erstellt, indem die obere Hälfte eines vorhandenen Bitmap--Objekts geklont wird. Dann werden beide Bilder angezeigt.

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

Der vorangehende Code zusammen mit einer bestimmten Datei Spiral.pnghat die folgende Ausgabe erzeugt.

Abbildung eines Bildes, gefolgt von der oberen Hälfte des Originalbildes