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

Initialization

MyMetafile := TMetafile.Create; // Создать метафайл

end.

Внимание

Работа с метафайлом осуществляется в динамической памяти, поэтому перед использованием созданного метафайла необходимо освободить ДП процедурой Free.

На рис. 16 .18 показано окно работающего приложения задачи 3. Левая часть отображается при нажатии кнопки «Создать метафайл», правая – при нажатии кнопки «Смотреть метафайл».

рис. 16.18. Форма работающего приложения задачи 3

Выводы

  1. Для построения графиков используются графические примитивы.

  2. Определены графические примитивы:

  • Линия и метод LineTo его отображения.

  • Кусочно-ломаная линия и метод PolyLine и его отображения.

  • Хорда (линия поперек эллипса) и метод Chord его отображения.

  • Прямоугольная рамка и метод FrameRect его отображения.

  • Заполненный прямоугольник и метод Rectangle его отображения.

  • Заполненный многоугольник и метод Polygon его отображения.

  • Заполненный прямоугольник со скругленными углами и метод RoundRect его отображения.

  • Дуга и метод Arc его отображения.

  • Заполненный эллипс и метод Ellipse его отображения.

  • Пирог (сектор эллипса) и метод Pie его отображения.

  1. Определен метод заполнения замкнутых фигур FloodFill (заполнить область),

  2. Имеется метод вывода текста: TextOut (вставить строку текста).

  3. Определен компонент TShape (фигура), позволяющий быстро выбирать фигуру для построения.

  4. Для изменения интерфейса используются кнопки, линейки прокрутки, списки, меню, диалоги.

  5. Замкнутые фигуры с помощью инструмента Brush могут быть залиты узором.

  6. График с использованием примитивов может быть сохранен в формате метафайла Windows.

17.Графика, растровые изображения и анимация

Подготовка к работе

  1. По рекомендованной литературе изучить графические средства Delphi.

  2. Разработать алгоритмы решения задач.

  3. Составить программы решения задач.

Контрольные вопросы

  1. Класс TImage - компонент изображения.

  2. Класс TBitMap - растровое изображение.

  3. Класс TJpegImage - сжатое по стандарту Jpeg изображение.

  4. Сжатие изображений в стандарте Jpeg за счет изменения системы цветов..

  5. Сжатие изображений в стандарте Jpeg за счет дискретного косинусного преобразования.

  6. Сжатие изображений в стандарте Jpeg за счет обнаружения повторяющихся кодов.

  7. Сжатие изображений в стандарте Jpeg за счет использования алгоритма Хафмена.

  8. Компонент TrackBar и его использование.

  9. Использование класса TMemoryStream для определения размеров файлов.

  10. Принцип создания анимации.

  11. Использование в анимационной программе фоновой картинки.

  12. Использование в анимационной программе картинки образа.

  13. Использование в анимационной программе буфера.

Задание к работе

  1. Создать программу обработки битовых изображений. Проект – приложение. Нужно использовать два компонента TImage, в одном отображается растровая картинка, в другом - она же с использованием алгоритмов сжатия. Для сжатия использовать класс TJpegImage.

  2. Создать программу анимации (движение самолета на фоне изображения фабрики) в компоненте TImage. Проект – приложение.

Пример выполнения

Задание 1

Создать программу работы с графическими файлами, Проект – приложение. В программе используется файл растровой картинки picture.bmp, который надо загрузить в ту же папку, где находится проект приложения. Этот файл находится в папке УМД к ЛР.

На рис. 17 .19 показана форма проекта задания 1. В форме размещены:

  • Компоненты Image1 и Image2 для отображения битовых образов.

  • Кнопки Button1 (BitMap) и Button2 (JpegImage), нажатие которых приводит к прорисовке изображений.

  • Метки Label1 и Label2 для вывода размеров файлов исходного и сжатого изображений.

  • Регулятор TrackBar1 для изменения качества сжимаемого изображения.

  • Метки Label3, Label4 и Label5 для отображения минимального, максимального и текущего значения коэффициента качества. Диапазон этого коэффициента определен в пределах 1...100.

  • Метка Label6 предназначена для заголовка компонент регулятора.

рис. 17.19. Форма проекта задания 1

Программа содержит 3 процедуры. Две отрабатывают нажатие кнопок, третья изменение состояния регулятора.

В программе используется класс TJpegImage, описанный в ИСР в модуле Jpeg. Поэтому в строке uses нужно добавить ссылку на этот модуль. В программе определены:

  • переменные MyBitmap и MyJpeg для взаимных преобразований картинок.

  • переменная MyMemory для создания буфера в памяти, по нему определяются размеры файлов в байтах.

  • вспомогательные переменные.

  • файлы картинок должны размещаться в папке проекта.

Листинг модуля формы

unit Prg_17_1_;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]