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