词条 | imagesize |
释义 | 函数名: imagesize 功 能: 返回保存位图像所需的字节数 用 法: unsigned far imagesize(int left, int top, int right, int bottom); 头文件: conio.h 程序例: #include <stdio.h> #include <conio.h> #include <dos.h> #include <graphics.h> #define ARROW_SIZE 10 void draw_arrow(int x,int y); int main(void) { int gdriver,gmode,errorcode; int x,y,maxx; int *arrow; unsigned size; /* initialize graphics and local variables */ gdriver=DETECT; initgraph(&gdriver,&gmode,""); /* read the result of initialization */ errorcode=graphresult(); if(errorcode!=grOk) /* an error occurred */ { printf("Graphics error: %s\",grapherrormsg(errorcode)); getch(); exit(1); /* terminate with an error code */ } maxx=getmaxx(); x=0; y=getmaxy()/2; /* calculate the size of the image */ size=imagesize(x,y-ARROW_SIZE,x+2*ARROW_SIZE,y+ARROW_SIZE); /* allocate memory to hold the image */ arrow=(int*)malloc(size); /* grab the image */ getimage(x,y-ARROW_SIZE,x+2*ARROW_SIZE,y+ARROW_SIZE,arrow); /* repeat until a key is pressed */ while(!kbhit()) { /* plot new image */ draw_arrow(x,y); delay(400); /* delay time */ /* erase old image */ putimage(x,y-ARROW_SIZE,arrow,AND_PUT); x+=2*ARROW_SIZE; if(maxx-x<2*ARROW_SIZE) x=0; } /* clean up */ free(arrow); closegraph(); return 0; } /* draw an arrow on the screen */ void draw_arrow(int x,int y) { moveto(x,y); linerel(0,-1*ARROW_SIZE); linerel(2*ARROW_SIZE,ARROW_SIZE); linerel(-2*ARROW_SIZE,ARROW_SIZE); linerel(0,-1*ARROW_SIZE); } |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。