Sdílet prostřednictvím


Kreslení, umístění a klonování obrázků

Pomocí třídy Obrázek můžete načíst a zobrazit rastrové obrázky (rastrové obrázky) a vektorové obrázky (metasoubory). K zobrazení obrázku potřebujete objekt Grafické a objekt Obrázek. Objekt Graphics poskytuje metodu Graphics::DrawImage, která přijímá adresu objektu Obrázek jako argument.

Následující příklad vytvoří Image objekt ze souboru Climber.jpg a pak zobrazí obrázek. Cílový bod pro levý horní roh obrázku (10, 10) je určen ve druhém a třetím parametru metody Graphics::DrawImage.

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

Předchozí kód spolu s konkrétním souborem Climber.jpgvytvořil následující výstup.

snímek obrazovky okna s fotkou

Můžete vytvořit Image objekty z různých formátů grafických souborů: BMP, GIF, JPEG, Exif, PNG, TIFF, WMF, EMF a ICON.

Následující příklad vytvoří Image objekty z různých typů souborů a poté zobrazí obrázky.

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

Třída Image poskytuje metodu Image::Clone, kterou můžete použít k vytvoření kopie existující Image, metasouborunebo Bitmap objektu. Metoda Clone je přetížena ve třídě Bitmap a jedna z variant má parametr zdrojového obdélníku, který můžete použít k určení části původního obrázku, který chcete zkopírovat. Následující příklad vytvoří objekt Bitmap klonováním horní poloviny existujícího objektu Bitmap. Pak se zobrazí oba obrázky.

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

Předchozí kód spolu s konkrétním souborem Spiral.pngvytvořil následující výstup.

obrázek následovaný horní polovinou orignálního obrázku