Сохранение и последующая выдача изображений

  • docx
  • 30.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л3-00097.docx

Сохранение и последующая выдача изображений

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 Ч см. поясненние к IIIpr Ч выражение типа word, определяющее спонсоб копирования.

Параметр рr задает способ взаимодействия вновь разнмещаемой копии с уже имеющимся на экране изобранжением. Взаимодействие осуществляется путем применнения кодируемых этим параметром логических операций к каждому биту копии и изображения. Для уканзания применяемой логической операции можно иснпользовать одну из следующих предварительно опреденленных в модуле graph констант:

const normalput = 0; {переслать Ч mov}

xorput     = 1; {исключающее ИЛИ Ч хог}

orput       = 2; {логическая операция ИЛИ Ч or}

andput     = 3; {логическая операция И Ч and}

notput     = 4; {инверсия изображения НЕ Ч not}

Наиболее часто используются операции normalputxorputnotput. Первая из них просто стирает часть экрана и на это место помещает копию из памяти. Операция notput делает то же самое, но копия выводится в инверсном виде, т. е. светлые точки заменяются на темные и наоборот. Повторнный вывод с аргументом xorput фрагмента изображения на то же место экрана, откуда была получена первая копия, сотрет эту часть экрана. Движение фигуры на экране можнно имитировать этим способом: задаем первые координанты и выставляем фигуру на экран с рr = 0, выполняем зандержку   экрана   (модуль   crt,   пункт   3.11.8),   повторно выставляем фигуру в эту же точку с рr=1, повторяем эту понследовательность действий, изменив координаты.