Lektsia_6VP
.pdfРабота с графикой в C#
GDI, как аппаратно-независимый графический интерфейс
Программа для MS-DOS:
Программа с поддержкой
Видеоадаптер
разных видеоадаптеров
Программа для MS Windows:
Программа GDI Драйвер
Видеоадаптер
2
Нововведения в GDI+
•Объектно-ориентированный интерфейс
•Прозрачное управление памятью
•Использование перегрузки имен функций
•Собственное пространство имен
•Перегрузка операторов (+ и -, например)
•Аппаратная абстракция
•Новый дизайн графических функций/объектов
3
Нововведения в GDI+
•Разделение функций закраски и отрисовки
•Градиентная закраска
•Поддержка прозрачности
•Режимы улучшения изображения
•Сплайны
•Пути
•Координатные преобразования (объект
Matrix для поворота, переноса, масштабирования и отражения)
4
Нововведения в GDI+
•Работа с растрами (отрисовка растров с наложением внешнего альфа-канала, масштабированием, растяжением, искажением и поворотом растров)
•Поддержка популярных форматов графических файлов (BMP, GIF, TIFF, JPEG, PNG, ICON, WMF, EMF)
•Формат EMF+
5
Контекст отображения
Интерфейс управляемых классов GDI:
•System.Drawing
•System.Drawing.Drawing2D
•System.Drawing.Imaging
•System.Drawing.Text
•System.Drawing.Printing
Класс Graphics (System.Drawing.Graphics) – основа интерфейса GDI+
Rectangle, Point и Size – структуры для хранения графических данных.
6
Сообщение
WM_PAINT
Кнопка «События»
(Events)
Событие «Paint»
7
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
}
e.Graphics – контекст отображения
e.ClipRectangle – границы перерисовываемой области, в виде класса Rectangle, со свойствами Left, Right, Width, Height
Для обновления: Refresh(); Invalidate(); Update();
8
1) Создание объекта Graphics через дескриптор окна (hWnd):
2) Через класс Image, унаследованный от любого объекта, например файла:
3) C помощью метода CreateGraphics получить ссылку на объект Graphics, для рисования на поверхности существующего элемента управления или формы:
9
Объект Событие pictureBox1 Paint
10