Описание функций Си

       

Imagesiz



     imagesize

Функция Возвращает количество байтов, требуемых для хранения битового образа.

Синтаксис #include

unsigned far imagesize(int left, int top, int right, int bottom);

Файл, содержащий graphics.h прототип

Описание imagesize определяет размер области памяти, тре- буемой для хранения битового образа. Если размер, требуемый для выбранного образа больше или равен 64К-1 байт, imagesize возвращает 0хFFFF(-1).

Возвращаемое imagesize возвращает размер требуемой области значение памяти в байтах.

Переносимость Функция уникальна для Turbo C++. Она работает только на компьютерах IBM PC и совместимых с ними, оснащенных дисплейными адаптерами, поддерживающими графический режим.

Смотри также Пример:

#include

#include

#include

#include

#define ARROW_SIZE 10

void draw_arrow(int x,int y);

int main(void) { int graphdriver = DETECT, gmode, errorcode; void *arrow; int x,y,maxx; unsigned int size;

/* инициализация драйвера и локальных переменных */ initgraph(&graphdriver,&gmode,"");

/* получение результата инициализации */ errorcode = graphresult(); if(errorcode != grOk) /* если ошибка */ { printf("Ошибка :%s\n",grapherrormsg(errorcode)); printf("Для останова нажмите любую клавишу\n"); getch(); exit(1); /* завершение с кодом ошибки */ } maxx = getmaxx(); x = 0; y = getmaxy()/2; /* нарисовать перемещаемый объект */ draw_arrow(x,y); /* определить размер памяти, для хранения изображения */ size = imagesize(x,y-ARROW_SIZE,x+(4*ARROW_SIZE),y+ARROW_SIZE); /* выделить память */ arrow = malloc(size); /* взять изображение */ getimage(x,y-ARROW_SIZE,x+(4*ARROW_SIZE),y+ARROW_SIZE,arrow); /* продолжать, пока не будет нажата клавиша */ while(!kbhit()) { /* стереть старый образ */ putimage(x,y-ARROW_SIZE,arrow,XOR_PUT); x += ARROW_SIZE; if(x >= maxx) x = 0; /* нарисовать изображение */ putimage(x,y-ARROW_SIZE,arrow,XOR_PUT); }

free(arrow); closegraph(); return 0; }

void draw_arrow(int x,int y) { /* нарисовать на экране стрелку */ moveto(x,y); linerel(4*ARROW_SIZE,0); linerel(-2*ARROW_SIZE,-1*ARROW_SIZE); linerel(0,2*ARROW_SIZE); linerel(2*ARROW_SIZE,-1*ARROW_SIZE); }



Содержание раздела