Сохранение и последующая выдача изображений
I. Функция imagesize возвращает количество байт, необходимых для размещения прямоугольного фрагмента изображения.
Формат обращения: imagesize (х1 ,у1 ,х2,у2); где х1,у1 и х2,у2 Ч выражения типа integer, определяюнщие координаты левого верхнего и правого нижнего угнлов прямоугольника, охватывающего изображение. Тип возвращаемого функцией значения Ч word.
II. Процедура getmem (модуль system) выделяет память для сохранения прямоугольной области.
Формат обращения: getmem(uk,b);
где uk Ч указатель на область памяти типа integer (аднрес! см. раздел 3.12); b Ч количество байт, которые ненобходимо выделить, это данное является результатом функции imagesize.
Процедура getmem вернет адрес uk, по которому будет размещаться b байт изображения.
III. Процедура getimage помещает в память копию прямонугольного фрагмента изображения.
Формат обращения:
getimage(x1,y1,x2,y2,содержимое по адресу uk); где х1,у1,х2,у2 Ч см. пояснение к I; содержимое по аднресу uk в Паскале записывается как uk".
IV. Процедура putimage выводит в заданное место экрана копию фрагмента изображения, ранее помещенную в память процедурой getimage.
Формат обращения:
рutimage(х,у,содержимое по адресу uk,pr); где х,у Ч выражения типа integer, определяющие коорндинаты левого верхнего угла того места на экране, кунда будет скопирован из динамической памяти фрагмент изображения; содержимое по адресу uk Ч см. поясненние к III; pr Ч выражение типа word, определяющее спонсоб копирования.
Параметр рr задает способ взаимодействия вновь разнмещаемой копии с уже имеющимся на экране изобранжением. Взаимодействие осуществляется путем применнения кодируемых этим параметром логических операций к каждому биту копии и изображения. Для уканзания применяемой логической операции можно иснпользовать одну из следующих предварительно опреденленных в модуле graph констант:
const normalput = 0; {переслать Ч mov}
xorput = 1; {исключающее ИЛИ Ч хог}
orput = 2; {логическая операция ИЛИ Ч or}
andput = 3; {логическая операция И Ч and}
notput = 4; {инверсия изображения НЕ Ч not}
Наиболее часто используются операции normalput, xorput, notput. Первая из них просто стирает часть экрана и на это место помещает копию из памяти. Операция notput делает то же самое, но копия выводится в инверсном виде, т. е. светлые точки заменяются на темные и наоборот. Повторнный вывод с аргументом xorput фрагмента изображения на то же место экрана, откуда была получена первая копия, сотрет эту часть экрана. Движение фигуры на экране можнно имитировать этим способом: задаем первые координанты и выставляем фигуру на экран с рr = 0, выполняем зандержку экрана (модуль crt, пункт 3.11.8), повторно выставляем фигуру в эту же точку с рr=1, повторяем эту понследовательность действий, изменив координаты.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.