О приложении к Лабораторной работе № 13



 

Получившуюся программу (LWP 13 Excel . exe), собранную из кусков кода приведённых в данной лабораторной работе, архив с проектом из статьи (SafeCOMWrapper_src.zip), а также документ Excel в архиве для работы автоматического заполнения (AutoFill . zip), использованный в данной работе можно загрузить по ссылке в конце этого материала (сслыка доступна в программном продукте).

 

Приложение: Исходный код программы и всех сопровождающих файлов с кодом приведён по ссылке в конце этого материала (сслыка доступна в программном продукте).

Варианты заданий: Варианты для выполнения самостоятельных заданий с использованием материала данной работы приведены по ссылке в конце этого материала (сслыка доступна в программном продукте).

Лабораторная работа № 14: Простой растровый редактор

Лабораторная работа № 14: Простой растровый редактор

 

Содержание

 

Вводная часть

Создание приложения Windows Forms

Модификация приложения Windows Forms : подготовка интерфейса редактора

Модификация приложения Windows Forms : функциональность растрового редактора

Завершающая часть

О приложении к Лабораторной работе № 14

 

Вводная часть

 

В этой работе будет рассмотрена работа с растровой графикой и «простым» рисованием. Фактически мы будем реализовывать функциональность известного приложения Microsoft Paint, входящего в состав любого Windows.

 

Что же такое GDI+? Официальная документация скромно называет её Class-based API, то есть основанным на классах интерфейсе прикладных программ для ОС Windows поколения «не GDI». Так как она встроена в Windows XP и все последующие ОС вплоть до Windows 7, её называют частью этих операционных систем. Часто встречается также определение «библиотека» или «библиотека классов». В действительности, предоставляемый GDI+ набор классов является тонкой оболочкой над множеством обычных функций, реализованных в одной динамической библиотеке GdiPlus.dll.

Итак, GDI+ — это библиотека, призванная заменить существующий уже больше 11 (или 18, в зависимости от того, как считать) лет интерфейс GDI, являющийся графическим ядром предыдущих версий Windows. Она сочетает в себе (по крайней мере, по замыслу) все достоинства своего предшественника и предоставляет множество новых мощных возможностей. Кроме того, при её проектировании заранее ставилась цель наименее болезненного переноса приложений на 64-битные платформы.

 

Основу для реализации функциональности растрового редактора будет составлять стандартная библиотека System . Drawing. Пространство имён System . Drawing обеспечивает доступ к функциональным возможностям графического интерфейса GDI+. Пространства имён System . Drawing . Drawing 2 D, System . Drawing . Imaging, и System . Drawing . Text обеспечивают дополнительные функциональные возможности.

 

Класс Graphics предоставляет методы рисования на устройстве отображения. Такие классы, как Rectangle и Point, инкапсулируют элементы GDI+. Класс Pen используется для рисования линий и кривых, а классы, производные от абстрактного класса Brush, используются для заливки фигур.

 

Основу рисунка составит элемент управления PictureBox пространства имён System . Windows . Forms, и класс Bitmap, который инкапсулирует точечный рисунок GDI+, состоящий из данных пикселей графического изображения и атрибутов рисунка. Объект Bitmap используется для работы с изображениями, определяемыми данными пикселей.

 

Приложение будет функционировать как растровый редактор изображений. А именно:

· будет доступна функция рисования линий и непрерывных линий с разной толщиной пера и цветом пера при рисовании;

· будет доступна функция рисования фигур, таких как прямоугольник и эллипс;

· будет доступна функция заливки фигур произвольным цветом, а также изменения толщины пера и цвета пера для контуров фигур при рисовании;

· будет доступна возможность очистки поля рисования (полная очистка и ластик), а также сохранения рисунка в разные графические форматы (например: JPEG);

· будет доступна возможность загрузки сохранённого рисунка или любого другого рисунка;

· будет доступна возможность работы с «эффектами», а именно осветление выбранного участка рисунка.

 

Пространства имён GDI+:

 

GDI+ — это уровень, находящийся между GDI и приложением, которые предоставляет более интуитивно понятную, основанную на наследовании объектную модель. Хотя GDI+ — это в основном оболочка вокруг GDI, тем не менее, Microsoft посредством GDI+ предлагает ряд новых возможностей и увеличенную производительность по сравнению с некоторыми старыми средствами GDI.

 

Часть базовой библиотеки классов .NET, связанная с GDI+, огромна! Гораздо важнее понять фундаментальные принципы, касающиеся рисования. Полные списки всех классов и методов, доступных в GDI+, конечно же, содержатся в документации SDK и MSDN.

 

Обзор основных пространств имен, в которых находятся базовые классы GDI+:

 

System.Drawing:

Содержит большинство классов, структур, перечислений и делегатов, обеспечивающих базовую функциональность рисования.

 

System.Drawing.Drawing2D:

Представляет основную поддержку для двумерной и векторной графики, включая сглаживание, геометрические трансформации и графические пути.

 

System.Drawing.Imaging:

Содержит различные классы, обеспечивающие манипуляции с графическими изображениями (битовые карты, файлы GIF и тому подобное).

 

System.Drawing.Printing:

Содержит классы, имеющие отношение к печати и предварительному просмотру выводимых на печать изображений.

 

System.Drawing.Design:

Включает некоторые предопределенные диалоговые окна, таблицы свойств и другие элементы интерфейса, имеющие отношение к расширению пользовательского интерфейса времени проектирования.

 

System.Drawing.Text:

Включает классы для выполнения более сложных манипуляций со шрифтами и семействами шрифтов.

 

Контексты устройств и объект Graphics:

 

В GDI способ идентификации устройства, на которое нужно направить вывод, заключается в обращении к объекту, называемому контекстом устройства (device contextDC). DC сохраняет информацию об определенном устройстве и может транслировать вызовы функций программного интерфейса GDI в конкретные команды, направляемые устройствам. Вы также можете опросить контекст устройства на предмет того, какие возможности он предоставляет (например, может ли принтер печатать в цвете или же только в черно-белом изображении), дабы соответствующим образом откорректировать вывод. Если вы пытаетесь заставить устройство делать что-то такое, что оно не способно сделать, то DC обычно обнаруживает это и предпринимает соответствующие действия (которые, в зависимости от ситуации, могут означать генерацию исключения либо модификацию запроса таким образом, чтобы получить как можно более близкий результат в рамках возможностей данного устройства).

Однако DC не только имеет дело с аппаратным устройством. Он служит в качестве моста между приложением и Windows, и принимает во внимание любые требования и ограничения, налагаемые на рисование Windows. Например, если Windows знает, что необходимо перерисовать лишь часть окна вашего приложения, DC перехватит и отменит попытки рисования вне этой области. Благодаря связи DC с Windows, работа через контекст устройств может упростить ваш код и в других отношениях.

Например, аппаратным устройствам необходимо сообщать, где следует рисовать объекты, и обычно им нужны координаты, отсчитываемые относительно верхнего левого угла экрана (или другого выходного устройства). Однако приложения обычно отображают нечто в клиентской области (области, зарезервированной для рисования) собственного окна, возможно, используя собственную систему координат. Поскольку окно может быть позиционировано в любом месте экрана, и пользователь в любой момент может его переместить, преобразования между этими системами координат могут оказаться непростой задачей. Однако DC всегда знает, где находится ваше окно, и может выполнять такие преобразования автоматически.

 

В GDI+ контекст устройства помещен в оболочку базового класса .NET с именем System.Drawing.Graphics. Большая часть рисования выполняется вызовом методов экземпляра Graphics. Фактически, поскольку класс Graphics отвечает за выполнение большинства операций рисования, очень немного в GDI+ происходит такого, что не касалось бы тем или иным образом экземпляра Graphics, а потому понимание того, как управлять этим объектом, является ключом к пониманию того, как рисовать на устройствах отображения с помощью GDI+.

 


Дата добавления: 2019-09-13; просмотров: 181; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!