Воскресенье, 28.04.2024, 22:14
Приветствую Вас Гость | RSS
Главное меню
Наш опрос
Оцените мой сайт
Всего ответов: 47
Форма входа
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Графика в Паскале

КОПИРОВАНИЕ И ВСТАВКА ПРЯМОУГОЛЬНОЙ ОБЛАСТИ ГРАФИЧЕСКОГО ЭКРАНА

GetImage(x1,y1,x2,y2:integer; var bitmap)

Копирует изображение прямоугольной области заданной координатами левой верхней и правой нижней вершин (первые четыре параметра) в буфер bitmap. Под bitmap должна быть динамически выделена память необходимого размера.

GetMem(var bitmap; size:integer)

Выделяет память под bitmap. Здесь size -размер выделяемой памяти. Узнать размер выделяемой памяти size можно с помощью функции ImageSize.

ImageSize(x1,y1,x2,y2:integer):integer;

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

PutImage(x1,y1:integer; var bitmap; op:word);

Выводит сохраненное ранее изображение на экран. Указываются координаты левой верхней вершины прямоугольной области сохраненного изображения (правая нижняя вершина не указывается, так как длины сторон прямоугольной области сохраняются при сохранении изображения). Параметр bitmap - имя буфера памяти, где ранее было сохранено изображение. Параметр op задает логическую операцию, определяющую способ взаимодействия вновь размещаемой копии с уже имеющимся на экране изображением. Взаимодействие осуществляется путем применения кодируемых этим параметром логических операций к каждому биту копии и изображения [4, 53].


Логические операции процедуры PutImage


Пример.

Возьмем за основу объект – 4 треугольника, которые мы рисовали в разделе «Поворот объекта». Скопируем выделенную область 120x120 в буфер и вставим ее правее на 120 пикселей. Параметр op=0 или NormalPut.


Рис.31. Фрагмент программы копирования изображения


Рис.32. Пример копирования изображения