Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp_Graphics.doc
Скачиваний:
16
Добавлен:
16.11.2019
Размер:
3.1 Mб
Скачать

Graphics and Drawing in Windows Forms 10

Overview of Graphics 10

Managed Class Interface 10

Объекты Graphics и Drawing в Windows Forms 10

Обзор графических возможностей 10

Интерфейс управляемых классов 10

Three Categories of Graphics Services 11

2-D Vector Graphics 11

Imaging 11

Typography 11

Три категории графических служб 11

Двухмерная векторная графика 11

Рисунки 11

Типографская разметка 11

Structure of the Graphics Interface 12

Important Classes 12

About GDI+ Managed Code 12

Структура интерфейса Graphics 12

Важные классы 12

Управляемый код GDI+ 12

Lines, Curves, and Shapes 13

Vector Graphics Overview 13

Прямые и кривые линии и фигуры 13

Общие сведения о векторной графике 13

The Building Blocks of GDI+ 14

Структурные элементы интерфейса GDI+ 14

Methods For Drawing with a Graphics Object 15

Методы рисования с помощью графических объектов 15

Pens, Lines, and Rectangles in GDI+ 16

Drawing a Line 16

Constructing a Pen 16

Перья, линии и прямоугольники в GDI+ 16

Рисование линии 16

Создание объекта Pen 16

Dashed Lines and Line Caps 17

Drawing a Rectangle 17

Штриховые линии и завершения отрезков 17

Рисование прямоугольника 17

Ellipses and Arcs in GDI+ 18

Drawing an Ellipse 18

Drawing an Arc 18

Эллипсы и дуги в GDI+ 18

Рисование эллипса 18

Рисование дуги 18

Polygons in GDI+ 19

Drawing a Polygon 19

Многоугольники в GDI+ 19

Рисование многоугольника 19

Cardinal Splines in GDI+ 20

Physical and Mathematical Splines 20

Фундаментальные сплайны в GDI+ 20

Физические и математические сплайны 20

Bézier Splines in GDI+ 21

Сплайны Безье в GDI+ 21

Drawing Bézier Splines 22

Рисование сплайнов Безье 22

Graphics Paths in GDI+ 23

Using a Path 23

Контуры в GDI+ 23

Применение контуров 23

Brushes and Filled Shapes in GDI+ 26

Solid Brushes 26

Hatch Brushes 26

Кисти и закрашенные фигуры в GDI+ 26

Сплошные кисти 26

Штриховые кисти 26

Texture Brushes 27

Gradient Brushes 27

Текстурные кисти 27

Градиентные кисти 27

Open and Closed Curves in GDI+ 29

Managed Interface for Curves 29

Замкнутые и незамкнутые кривые в GDI+ 29

Управляемый интерфейс для кривых 29

Regions in GDI+ 31

Using Regions 31

Области в GDI+ 31

Использование областей 31

Restricting the Drawing Surface in GDI+ 32

Clipping with Regions 32

Ограничение поверхности для рисования в GDI+ 32

Задание области обрезки 32

Antialiasing with Lines and Curves 33

Aliasing 33

Antialiasing 33

Сглаживание прямых и кривых линий 33

Неровности 33

Сглаживание 33

Images, Bitmaps, and Metafiles 35

Types of Bitmaps 35

Работа с растровыми и векторными изображениями с использованием классов Image, Bitmap и Metafile 35

Типы точечных рисунков 35

Graphics File Formats 38

BMP 38

Graphics Interchange Format (GIF) 38

Joint Photographic Experts Group (JPEG) 38

Форматы графических файлов 38

BMP 38

GIF (Graphics Interchange Format) 38

JPEG (Joint Photographic Experts Group) 38

Exchangeable Image File (EXIF) 39

EXIF (Exchangeable Image File) 39

Portable Network Graphics (PNG) 40

Tag Image File Format (TIFF) 40

PNG (Portable Network Graphics) 40

TIFF (Tag Image File Format) 40

Metafiles in GDI+ 41

Metafile Formats 41

Метафайлы в GDI+ 41

Форматы метафайлов 41

Drawing, Positioning, and Cloning Images in GDI+ 42

File Types and Cloning 42

Отрисовка, позиционирование и клонирование изображений в GDI+ 42

Типы файлов и клонирование 42

Cropping and Scaling Images in GDI+ 44

DrawImage Variations 44

Обрезка и масштабирование изображений в GDI+ 44

Варианты DrawImage 44

Coordinate Systems and Transformations 46

Types of Coordinate Systems 46

Transforms and Coordinate Systems 46

Системы координат и преобразования 46

Типы систем координат 46

Преобразования и системы координат 46

Matrix Representation of Transformations 50

Матричное представление преобразований 50

Composite Transformations 54

Составные преобразования 54

Global and Local Transformations 56

Global Transformations 56

Глобальные и локальные преобразования 56

Глобальные преобразования 56

Local Transformations 57

Локальные преобразования 57

Using Managed Graphics Classes 59

Getting Started with Graphics Programming 59

How to: Create Graphics Objects for Drawing 59

Creating a Graphics Object 59

PaintEventArgs in the Paint Event Handler 59

Использование управляемых графических классов 59

Приступая к программированию графики 59

Создание объектов Graphics для рисования 59

Создание объекта Graphics 59

PaintEventArgs в обработчике события Paint 59

CreateGraphics Method 60

Create from an Image Object 60

Метод CreateGraphics 60

Создание из объекта Image 60

Drawing and Manipulating Shapes and Images 61

How to: Create a Pen 61

Example 61

Robust Programming 61

Рисование фигур и изображений и управление ими 61

Создание пера 61

Пример 61

Надежное программирование 61

How to: Set the Color of a Pen 62

Example 62

Compiling the Code 62

Robust Programming 62

How to: Create a Solid Brush 62

Example 62

Robust Programming 62

Установка цвета фона для пера 62

Пример 62

Компиляция кода 62

Надежное программирование 62

Создание сплошной кисти 62

Пример 62

Надежное программирование 62

How to: Draw a Line on a Windows Form 63

Example 63

Compiling the Code 63

Robust Programming 63

Рисование линии в Windows Forms 63

Пример 63

Компиляция кода 63

Надежное программирование 63

How to: Draw an Outlined Shape 64

Example 64

Compiling the Code 64

Robust Programming 64

Рисование линии или контурной фигуры 64

Пример 64

Компиляция кода 64

Надежное программирование 64

How to: Draw a Filled Rectangle on a Windows Form 65

Example 65

Compiling the Code 65

Robust Programming 65

Рисование заполненного прямоугольника в Windows Forms 65

Пример 65

Компиляция кода 65

Надежное программирование 65

How to: Draw a Filled Ellipse on a Windows Form 66

Example 66

Compiling the Code 66

Robust Programming 66

Рисование заполненного эллипса в Windows Forms 66

Пример 66

Компиляция кода 66

Надежное программирование 66

How to: Draw Text on a Windows Form 67

Example 67

Compiling the Code 67

Robust Programming 67

Отрисовка текста в Windows Forms 67

Пример 67

Компиляция кода 67

Надежное программирование 67

How to: Draw Vertical Text on a Windows Form 68

Example 68

Compiling the Code 68

Robust Programming 68

Рисование текста по вертикали в Windows Forms 68

Пример 68

Компиляция кода 68

Надежное программирование 68

How to: Render Images with GDI+ 69

To render an image with GDI+ 69

Вывод изображений с использованием GDI+ 69

Вывод изображения с помощью GDI+ 69

How to: Create a Shaped Windows Form 70

Example 70

Compiling the Code 70

Создание фигурной формы Windows Forms 70

Пример 70

Компиляция кода 70

How to: Copy Pixels for Reducing Flicker in Windows Forms 71

Example 71

Compiling the Code 71

Копирование пикселов для уменьшения эффекта дрожания изображения в Windows Forms 71

Пример 71

Компиляция кода 71

Using a Pen to Draw Lines and Shapes 72

How to: Use a Pen to Draw Lines 72

Example 72

Compiling the Code 72

Рисование линий и фигур с помощью пера 72

Рисование линий с помощью пера 72

Пример 72

Компиляция кода 72

How to: Use a Pen to Draw Rectangles 73

Example 73

Compiling the Code 73

Рисование прямоугольников с помощью пера 73

Пример 73

Компиляция кода 73

How to: Set Pen Width and Alignment 74

To vary the width of a pen 74

Задание толщины и выравнивания пера 74

Изменение толщины пера 74

To change the alignment of a pen 75

To create an inset pen 75

Изменение выравнивания пера 75

Создание вложенного пера 75

How to: Draw a Line with Line Caps 76

Example 76

Compiling the Code 76

Рисование линий с наконечниками 76

Пример 76

Компиляция кода 76

How to: Join Lines 77

Example 77

Compiling the Code 77

Соединение линий 77

Пример 77

Компиляция кода 77

How to: Draw a Custom Dashed Line 78

Example 78

Compiling the Code 78

Рисование пользовательских пунктирных линий 78

Пример 78

Компиляция кода 78

How to: Draw a Line Filled with a Texture 79

Example 79

Compiling the Code 79

Рисование линии с текстурным заполнением 79

Пример 79

Компиляция кода 79

Using a Brush to Fill Shapes 80

How to: Fill a Shape with a Solid Color 80

Example 80

Compiling the Code 80

Использование кисти для заливки фигур 80

Заливка фигуры сплошным цветом 80

Пример 80

Компиляция кода 80

How to: Fill a Shape with a Hatch Pattern 81

Example 81

Compiling the Code 81

Штриховая заливка фигуры 81

Пример 81

Компиляция кода 81

How to: Fill a Shape with an Image Texture 82

Example 82

Compiling the Code 82

Заливка фигуры текстурой, созданной на основе изображения 82

Пример 82

Компиляция кода 82

How to: Tile a Shape with an Image 83

To tile an image 83

Мозаичное заполнение фигуры заданным изображением 83

Мозаичное заполнение изображением 83

To flip an image horizontally while tiling 84

To flip an image vertically while tiling 84

Горизонтальное зеркальное преобразование изображения при мозаичном заполнении 84

Вертикальное зеркальное преобразование изображения при мозаичном заполнении 84

To flip an image horizontally and vertically while tiling 85

Мозаичное заполнение с зеркальным отображением изображения по горизонтали и вертикали 85

Using a Gradient Brush to Fill Shapes 86

Заливка фигур с помощью градиентной кисти 86

How to: Create a Linear Gradient 87

Создание линейного градиента 87

To use horizontal linear gradients 88

Использование горизонтальных линейных градиентов 88

To customize linear gradients 89

Настройка линейных градиентов 89

To create diagonal linear gradients 90

Создание диагональных линейных градиентов 90

How to: Create a Path Gradient 91

To fill an ellipse with a path gradient 91

Создание градиента вдоль контура 91

Заливка эллипса с использованием градиента контура 91

To specify points on the boundary 92

Указание точек на границе 92

To customize a path gradient 94

Настройка градиента контура 94

To customize with interpolation 95

Настройка с интерполяцией 95

To set the center point 96

Задание центральной точки 96

How to: Apply Gamma Correction to a Gradient 97

Example 97

Compiling the Code 97

Применение гамма-коррекции к градиенту 97

Пример 97

Компиляция кода 97

Working with Images, Bitmaps, Icons, and Metafiles 98

How to: Load and Display Bitmaps 98

Example 98

Compiling the Code 98

Работа с растровыми и векторными изображениями 98

Загрузка и отображение растровых изображений 98

Пример 98

Компиляция кода 98

How to: Load and Display Metafiles 99

Example 99

Compiling the Code 99

Загрузка и отображение метафайлов 99

Пример 99

Компиляция кода 99

How to: Crop and Scale Images 100

Example 100

Compiling the Code 100

Обрезка и масштабирование изображений 100

Пример 100

Компиляция кода 100

How to: Rotate, Reflect, and Skew Images 101

Example 101

Поворот, отражение и наклон изображений 101

Пример 101

Compiling the Code 102

Компиляция кода 103

How to: Use Interpolation Mode to Control Image Quality During Scaling 103

Example 103

Использование режима интерполяции для управления качеством изображений при масштабировании 104

Пример 104

Compiling the Code 105

Компиляция кода 105

How to: Create Thumbnail Images 106

Example 106

Compiling the Code 106

Создание эскизов изображений 106

Пример 106

Компиляция кода 106

How to: Improve Performance by Avoiding Automatic Scaling 107

Повышение производительности за счет отключения автоматического масштабирования 107

Example 108

Compiling the Code 108

Пример 108

Компиляция кода 108

How to: Read Image Metadata 109

Id 109

Value 109

Len 109

Чтение метаданных изображения 109

Id 109

Значение 109

Len 109

Type 110

Example 110

Type 110

Пример 110

Compiling the Code 112

Компиляция кода 112

How to: Create a Bitmap at Run Time 113

Example 113

Compiling the Code 113

Создание растрового изображения во время выполнения 113

Пример 113

Компиляция кода 113

How to: Extract the Icon Associated with a File in Windows Forms 114

Example 114

Извлечение связанного с файлом значка в Windows Forms 114

Пример 114

Compiling the Code 115

Компиляция кода 115

Alpha Blending Lines and Fills 116

How to: Draw Opaque and Semitransparent Lines 116

Альфа-смешение цвета для линий и заливок 116

Рисование непрозрачных и полупрозрачных линий 116

Example 117

Compiling the Code 117

Пример 117

Компиляция кода 117

How to: Draw with Opaque and Semitransparent Brushes 118

Example 118

Compiling the Code 118

Рисование непрозрачными и полупрозрачными кистями 118

Пример 118

Компиляция кода 118

How to: Use Compositing Mode to Control Alpha Blending 119

Example 119

Использование режима комбинирования для управления альфа-смешением 119

Пример 119

Compiling the Code 120

Компиляция кода 120

How to: Use a Color Matrix to Set Alpha Values in Images 121

Example 121

Использование матрицы цветов для задания значений прозрачности в изображениях 121

Пример 121

Compiling the Code 122

Компиляция кода 122

Using Fonts and Text 123

How to: Construct Font Families and Fonts 123

Шрифты и текст 123

Разработка шрифтов и их семейств 123

Example 124

Compiling the Code 124

Пример 124

Компиляция кода 124

How to: Draw Text at a Specified Location 125

To draw a line of text with GDI+ 125

To draw a line of text with GDI 125

Compiling the Code 125

Рисование текста в указанной позиции 125

Рисование строки текста с использованием GDI+ 125

Рисование строки текста с использованием GDI 125

Компиляция кода 125

How to: Draw Wrapped Text in a Rectangle 126

To draw wrapped text in a rectangle with GDI+ 126

Многострочный вывод текста в прямоугольнике 126

Рисование текста с переносом по словам в прямоугольнике с помощью GDI+ 126

To draw wrapped text in a rectangle with GDI 127

Compiling the Code 127

Рисование текста с переносом по словам в прямоугольнике с помощью GDI 127

Компиляция кода 127

How to: Draw Text with GDI 128

Example 128

Compiling the Code 128

Рисование текста с использованием GDI 128

Пример 128

Компиляция кода 128

How to: Align Drawn Text 129

To draw centered text with GDI+ (DrawString) 129

To draw centered text with GDI (DrawText) 129

Compiling the Code 129

Выравнивание рисуемого текста 129

Рисование центрированного текста с использованием GDI+ (DrawString) 129

Рисование центрированного текста с использованием GDI (DrawText) 129

Компиляция кода 129

How to: Create Vertical Text 130

Example 130

Compiling the Code 130

Вывод текста по вертикали 130

Пример 130

Компиляция кода 130

How to: Set Tab Stops in Drawn Text 131

Example 131

Установка позиций табуляции для выводимого текста 131

Пример 131

Compiling the Code 132

Компиляция кода 132

How to: Enumerate Installed Fonts 133

Example 133

Перебор установленных шрифтов 133

Пример 133

Compiling the Code 134

Компиляция кода 134

How to: Obtain Font Metrics 135

Получение метрик шрифтов 135

Example 136

Пример 136

Compiling the Code 138

Компиляция кода 138

How to: Use Antialiasing with Text 139

Example 139

Compiling the Code 139

Сглаживание текста 139

Пример 139

Компиляция кода 139

Constructing and Drawing Curves 140

How to: Draw Cardinal Splines 140

Drawing a Bell-Shaped Cardinal Spline 140

Построение и рисование кривых 140

Рисование фундаментальных сплайнов 140

Рисование фундаментального сплайна в форме колокола 140

Drawing a Closed Cardinal Spline 141

141

Рисование замкнутого фундаментального сплайна 141

Changing the Bend of a Cardinal Spline 142

Compiling the Code 142

Изменение изгиба фундаментального сплайна 142

Компиляция кода 142

How to: Draw a Single Bézier Spline 143

Example 143

Compiling the Code 143

Рисование отдельного сплайна Безье 144

Пример 144

Компиляция кода 144

How to: Draw a Sequence of Bézier Splines 144

Example 144

Compiling the Code 144

Рисование последовательности сплайнов Безье 145

Пример 145

Компиляция кода 145

Constructing and Drawing Paths 146

How to: Create Figures from Lines, Curves, and Shapes 146

Example 146

Построение и рисование контуров 146

Создание изображений из прямых и кривых линий и геометрических фигур 146

Пример 146

Compiling the Code 147

Компиляция кода 147

How to: Fill Open Figures 148

Example 148

Compiling the Code 148

Заливка открытых фигур 148

Пример 148

Компиляция кода 148

How to: Flatten a Curved Path into a Line 149

To Flatten a Path 149

Using Transformations in Managed GDI+ 149

Using the World Transformation 149

Спрямление участков кривой 149

Спрямление контура 149

Использование преобразований в управляемом GDI+ 149

Использование объемного преобразования 149

Different Types of Transformations 150

Различные типы преобразований 150

Why Transformation Order Is Significant 151

Composite Transform Examples 151

Значение порядка преобразований 151

Примеры составных преобразований 151

Using Graphics Containers 153

Managing the State of a Graphics Object 153

Graphics State 153

Использование графических контейнеров 153

Управление состоянием объекта Graphics 153

Состояние объекта Graphics 153

Using Nested Graphics Containers 156

Transformations in Nested Containers 156

Использование вложенных графических контейнеров 156

Преобразования во вложенных контейнерах 156

Clipping in Nested Containers 157

Обрезка во вложенных контейнерах 157

Quality Settings in Nested Containers 158

Several Layers of Nested Containers 158

Параметры качества во вложенных контейнерах 158

Различные уровни вложенных контейнеров 158

Using Regions 160

How to: Use Hit Testing with a Region 160

Example 160

Compiling the Code 160

Использование областей 160

Проверка нахождения указателя мыши в заданной области 160

Пример 160

Компиляция кода 160

How to: Use Clipping with a Region 161

Example 161

Compiling the Code 161

Обрезка изображения по границам области обрезки 161

Пример 161

Компиляция кода 161

Using Image Encoders and Decoders in Managed GDI+ 162

How to: List Installed Encoders 162

Example 162

Применение кодировщиков и декодеров изображений в управляемом GDI+ 162

Получение списка установленных кодировщиков 162

Пример 162

Compiling the Code 163

Компиляция кода 163

How to: List Installed Decoders 164

Example 164

Получение списка установленных декодеров 164

Пример 164

Compiling the Code 165

Компиляция кода 165

How to: Convert a BMP image to a PNG image 166

Example 166

Compiling the Code 166

How to: Set JPEG Compression Level 166

Example 166

Преобразование изображение из формата BMP в формат PNG 166

Пример 166

Компиляция кода 166

Установка уровня сжатия JPEG 166

Пример 166

Compiling the Code 167

Компиляция кода 167

Graphics and Drawing in Windows Forms

The common language runtime uses an advanced implementation of the Windows Graphics Device Interface (GDI) called GDI+. With GDI+ you can create graphics, draw text, and manipulate graphical images as objects. GDI+ is designed to offer performance and ease of use. You can use GDI+ to render graphical images on Windows Forms and controls. Although you cannot use GDI+ directly on Web Forms, you can display graphical images through the Image Web Server control.

In this section, you will find topics that introduce the fundamentals of GDI+ programming. Although not intended to be a comprehensive reference, this section includes information about the Graphics, Pen, Brush, and Color objects, and explains how to perform such tasks as drawing shapes, drawing text, or displaying images.

Overview of Graphics

GDI+ is an application programming interface (API) that forms the subsystem of the Microsoft Windows XP operating system. GDI+ is responsible for displaying information on screens and printers. As its name suggests, GDI+ is the successor to GDI, the Graphics Device Interface included with earlier versions of Windows.

Managed Class Interface

The GDI+ API is exposed through a set of classes deployed as managed code. This set of classes is called the managed class interface to GDI+. The following namespaces make up the managed class interface:

  • System.Drawing

  • System.Drawing.Drawing2D

  • System.Drawing.Imaging

  • System.Drawing.Text

  • System.Drawing.Printing

With a Graphics Device Interface, such as GDI+, you can display information on a screen or printer without having to be concerned about the details of a particular display device. The programmer makes calls to methods provided by GDI+ classes. Those methods, in turn, make the appropriate calls to specific device drivers. GDI+ insulates the application from the graphics hardware. It is this insulation that enables a programmer to create device-independent applications.

Объекты Graphics и Drawing в Windows Forms

Среда CLR использует расширенную реализацию интерфейса Windows GDI (интерфейс) (GDI) — GDI+. Интерфейс GDI+ поддерживает создание графики, вывод текста и управление изображениями в качестве объектов. Интерфейс GDI+ отличается высокой производительность и простотой в использовании. Интерфейс GDI+ можно использовать для вывода графических изображений на формах Windows Forms и элементах управления. Хотя GDI+ нельзя использовать непосредственно на веб-формах, можно выводить графические изображения через элемент управления веб-сервера Image.

В этом разделе описаны основы программирования с использованием GDI+. Хотя данный раздел не является полным справочником, он включает сведения об объектах Graphics, Pen, Brush и Color и способах выполнения таких задач, как рисование фигур, создание текста, отображение рисунков. Дополнительные сведения см. в справочной документации по GDI+, расположенной в библиотеке MSDN по адресу http://msdn.microsoft.com/library.

Обзор графических возможностей

GDI+ — это интерфейс прикладной программный интерфейс (API), формирующий подсистему ОС Microsoft Windows XP. GDI+ отвечает за вывод информации на экран и на печать. Как следует из его названия, GDI+ является преемником GDI, интерфейса GDI (интерфейс), входившего в более ранние версии Windows.

Интерфейс управляемых классов

Доступ к API-интерфейсу GDI+ осуществляется через набор классов, из которых создается управляемый код. Этот набор классов называется интерфейсом управляемых классов GDI+. Интерфейс управляемых классов состоит из следующих пространств имен:

  • System.Drawing

  • System.Drawing.Drawing2D

  • System.Drawing.Imaging

  • System.Drawing.Text

  • System.Drawing.Printing

Интерфейсы GDI (интерфейс), такие как GDI+, позволяют создателям приложений выводить данные на экран или на принтер без необходимости обеспечивать работу с определенными типами устройств отображения. Разработчикам достаточно обращаться к методам, содержащимся в классах GDI+. Эти методы, в свою очередь, осуществляют вызовы драйверов определенных устройств. Таким образом GDI+ изолирует приложение от оборудования, работающего с графикой. Именно такая изоляция дает программистам возможность создавать приложения, не зависящие от устройств.

Three Categories of Graphics Services

The graphics offerings in Windows Forms fall into the following three broad categories:

  • Two-dimensional (2-D) vector graphics

  • Imaging

  • Typography

2-D Vector Graphics

Two-dimensional vector graphics are primitives; such as lines, curves, and figures; that are specified by sets of points on a coordinate system. For example, a straight line is specified by its two endpoints, and a rectangle is specified by a point giving the location of its upper-left corner and a pair of numbers giving its width and height. A simple path is specified by an array of points that are connected by straight lines. A Bézier spline is a sophisticated curve specified by four control points.

GDI+ provides classes and structures that store information about the primitives themselves, classes that store information about how the primitives will be drawn, and classes that actually do the drawing. For example, the Rectangle structure stores the location and size of a rectangle; the Pen class stores information about line color, line width, and line style; and the Graphics class has methods for drawing lines, rectangles, paths, and other figures. There are also several Brush classes that store information about how closed figures and paths will be filled with colors or patterns.

You can record a vector image, which is a sequence of graphics commands, in a metafile. GDI+ provides the Metafile class for recording, displaying, and saving metafiles. With the MetafileHeader and MetaHeader classes, you can inspect the data stored in a metafile header.

Imaging

Certain kinds of pictures are difficult or impossible to display with the techniques of vector graphics. For example, the pictures on toolbar buttons and the pictures that appear as icons are difficult to specify as collections of lines and curves. A high-resolution digital photograph of a crowded baseball stadium is even more difficult to create with vector techniques. Images of this type are stored as bitmaps, which are arrays of numbers that represent the colors of individual dots on the screen. GDI+ provides the Bitmap class for displaying, manipulating, and saving bitmaps.

Typography

Typography is the display of text in a variety of fonts, sizes, and styles. GDI+ provides extensive support for this complex task. One of the new features in GDI+ is subpixel antialiasing, which gives text rendered on an LCD screen a smoother appearance.

In addition, Windows Forms offers the option to draw text with GDI capabilities in its TextRenderer class.