Рисование, размещение и клонирование изображений в GDI+
Класс Bitmap можно использовать для загрузки и отображения растровых изображений и использования класса Metafile для загрузки и отображения векторных изображений. Классы Bitmap и Metafile наследуются от класса Image. Чтобы отобразить векторное изображение, требуется экземпляр класса Graphics и Metafile. Для отображения растрового изображения требуется экземпляр класса Graphics и Bitmap. Экземпляр класса Graphics предоставляет метод DrawImage, который получает Metafile или Bitmap в качестве аргумента.
Типы файлов и клонирование
В следующем примере кода показано, как создать Bitmap из файла Climber.jpg и отобразить растровое изображение. Точка назначения для левого верхнего угла изображения (10, 10), указывается во втором и третьем параметрах.
Bitmap myBitmap = new Bitmap("Climber.jpg");
myGraphics.DrawImage(myBitmap, 10, 10);
Dim myBitmap As New Bitmap("Climber.jpg")
myGraphics.DrawImage(myBitmap, 10, 10)
На следующем рисунке показано изображение.
Объекты Bitmap можно создавать из различных форматов графических файлов: BMP, GIF, JPEG, EXIF, PNG, TIFF и ICON.
В следующем примере кода показано, как создавать объекты Bitmap из различных типов файлов, а затем отображать растровые изображения.
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)
Класс Bitmap предоставляет метод Clone, который можно использовать для создания копии существующей Bitmap. Метод Clone имеет параметр исходного прямоугольника, который можно использовать для указания части исходной растровой карты, которую требуется скопировать. В следующем примере кода показано, как создать Bitmap путем клонирования верхней половины существующей Bitmap. Затем оба изображения рисуются.
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)
На следующем рисунке показаны два изображения.
См. также
.NET Desktop feedback