Udostępnij przez


Rysowanie, pozycjonowanie i klonowanie obrazów w GDI+

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

Typy plików i klonowanie

W poniższym przykładzie kodu pokazano, jak skonstruować element Bitmap z pliku Climber.jpg 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.

Image Sample

Obiekty można tworzyć Bitmap 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ć Bitmap obiekty 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ącego Bitmapobiektu . 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ć. W poniższym przykładzie kodu pokazano, jak utworzyć obiekt Bitmap przez sklonowanie pierwszej połowy istniejącego Bitmapobiektu . 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.

Cropping

Zobacz też