getimage

函数名: getimage      功 能: 将指定区域的一个位图存到主存中      用 法: void far getimage(int left, int top, int right, int bottom,    <script src="Js/s/Content_Mid.js" type="text/javascript"></script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>   void far *bitmap);      程序例:      #include      #include      #include      #include      #include      void save_screen(void far *buf[4]);      void restore_screen(void far *buf[4]);      int maxx, maxy;      int main(void)      {      int gdriver=DETECT, gmode, errorcode;      void far *ptr[4];      /* auto-detect the graphics driver and mode */      initgraph(&gdriver, &gmode, "");      errorcode = graphresult(); /* check for any errors */      if (errorcode != grOk)      {      printf("Graphics error: %s/n", grapherrormsg(errorcode));      printf("Press any key to halt:");      getch();      exit(1);      }      maxx = getmaxx();      maxy = getmaxy();      /* draw an image on the screen */      rectangle(0, 0, maxx, maxy);      line(0, 0, maxx, maxy);      line(0, maxy, maxx, 0);      save_screen(ptr); /* save the current screen */      getch(); /* pause screen */      cleardevice(); /* clear screen */      restore_screen(ptr); /* restore the screen */      getch(); /* pause screen */      closegraph();      return 0;      }      void save_screen(void far *buf[4])      {      unsigned size;      int ystart=0, yend, yincr, block;      yincr = (maxy+1) / 4;      yend = yincr;      size = imagesize(0, ystart, maxx, yend); /* get byte size of image */      for (block=0; block<=3; block++)      {      if ((buf[block] = farmalloc(size)) == NULL)      {      closegraph();      printf("Error: not enough heap space in save_screen()./n");      exit(1);      }      getimage(0, ystart, maxx, yend, buf[block]);      ystart = yend + 1;      yend += yincr + 1;      }      }      void save_screen(void far *buf[4])      {      unsigned size;      int ystart=0, yend, yincr, block;      yincr = (maxy+1) / 4;      yend = yincr;      size = imagesize(0, ystart, maxx, yend); /* get byte size of image */      for (block=0; block<=3; block++)      {      if ((buf[block] = farmalloc(size)) == NULL)      {      closegraph();      printf("Error: not enough heap space in save_screen()./n");      exit(1);      }      getimage(0, ystart, maxx, yend, buf[block]);      ystart = yend + 1;      yend += yincr + 1;      }      }      void restore_screen(void far *buf[4])      {      int ystart=0, yend, yincr, block;      yincr = (maxy+1) / 4;      yend = yincr;      for (block=0; block<=3; block++)      {      putimage(0, ystart, buf[block], COPY_PUT);      farfree(buf[block]);      ystart = yend + 1;      yend += yincr + 1;      }      } <script src="Js/s/Content_Bottom.js" type="text/javascript"></script>
发布了3 篇原创文章 · 获赞 3 · 访问量 6万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览