void far putimage(int x, int y, void far *buf, int op)
Прототип:
Описание:
Функция putimage() копирует изображение, предварительно сохраненное с помощью функции getimage() в памяти по адресу, заданному параметром buf. Изображение копируется на экран, начиная с точки с координатами х,у. Значение параметра ор определяет, каким именно образом изображение будет представлено на экране. Его допустимые значения перечислены ниже:
| Название | Величина | Значение |
|---|---|---|
| COPY_PUT | 0 | Копирование как есть |
| XOR_PUT | 1 | Исключающее ИЛИ с целевой областью |
| OR_PUT | 2 | ИЛИ с целевой областью |
| AND_PUT | 3 | И с целевой областью |
| NOT_PUT | 4 | Инвертировать исходное изображение |
Пример:
Следующая программа демонстрирует использование функций getimage(), imagesize() и putimage(): /* данная программа демонстрирует, как можно двигать графическое изображение с помощью getimage(), imagesize() и putimage(). */ #include <conio.h> #include <graphics.h> #include <stdlib.h> void box (int, int, int, int, int); int main(void) { int driver, mode; unsigned size; void *buf; driver = DETECT; /* автоопределение */ mode = 0; initgraph(&driver, &mode, "c:\\bc5\\bgi"); box(20, 20, 200, 200, 15); setcolor(RED); line (20, 20, 200, 200); setcolor(GREEN); line(20, 200, 200, 20); getch (); /* перемещение изображения */ /* сначала получение размера изображения */ size = imagesize (20, 20, 200, 200); if(size != 0xffff) { /* выделение памяти для изображения */ buf = malloc(size); if(buf) { getimage(20, 20, 200, 200, buf); putimage(100, 100, buf, COPY_PUT); putimage(300, 50, buf, COPY_PUT); } } outtext("press a key"); getch(); restorecrtmode(); return 0; } /* вывод прямоугольника по координатам его двух углов */ void box (int startx, int starty, int endx, int endy, int color) { setcolor(color); rectangle(startx, starty, endx, endy); }
