Udostępnij za pośrednictwem


Rysowanie, pozycjonowanie i klonowanie obrazów w GDI+

Za pomocą klasy Bitmap można ładować i wyświetlać obrazy rastrowe, a do ładowania i wyświetlania obrazów wektorowych można użyć klasy Metafile. Klasy Bitmap i Metafile dziedziczą z klasy Image. Aby wyświetlić obraz wektorowy, potrzebne jest wystąpienie klasy Graphics i Metafile. Aby wyświetlić obraz rastrowy, potrzebne jest wystąpienie klasy Graphics i Bitmap. Wystąpienie klasy Graphics udostępnia metodę DrawImage, która odbiera Metafile lub Bitmap jako argument.

Typy plików i klonowanie

W poniższym przykładzie kodu pokazano, jak skonstruować Bitmap z Climber.jpg pliku i wyświetlić mapę bitową. Punkt docelowy lewego górnego rogu obrazu (10, 10) jest określony w drugim i trzecim parametrze.

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

Na poniższej ilustracji przedstawiono obraz.

przykładowy obraz

Obiekty Bitmap można tworzyć z różnych formatów plików graficznych: BMP, GIF, JPEG, EXIF, PNG, TIFF i ICON.

W poniższym przykładzie kodu pokazano, jak konstruować obiekty Bitmap z różnych typów plików, a następnie wyświetlać mapy bitowe.

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)

Klasa Bitmap udostępnia metodę Clone, której można użyć do utworzenia kopii istniejącej Bitmap. Metoda Clone ma parametr prostokąta źródłowego, którego można użyć do określenia części oryginalnej mapy bitowej, którą chcesz skopiować. Poniższy przykład kodu pokazuje, jak utworzyć Bitmap poprzez sklonowanie górnej połowy istniejącej Bitmap. Następnie oba obrazy są rysowane.

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)

Na poniższej ilustracji przedstawiono dwa obrazy.

przycinanie

Zobacz też