КОПИРОВАНИЕ И ВСТАВКА ПРЯМОУГОЛЬНОЙ ОБЛАСТИ ГРАФИЧЕСКОГО ЭКРАНА
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. Пример копирования
изображения