home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 15 / CDACTUAL15.iso / cdactual / program / basic / PGL.ZIP / PGLCS.ZIP / BM.C next >
Encoding:
C/C++ Source or Header  |  1992-01-20  |  2.0 KB  |  66 lines

  1. /*
  2. *********************************************************************
  3. *   BM.C    PGL - Screen-Bitmap dump to drawing file
  4. *           PGL can support 1,2,4, or 8 bit per pixel color bitmaps
  5. *   Uses Turbo C BGI !
  6. *********************************************************************
  7. */
  8.     #include <graphics.h>
  9.     #include <stdio.h>
  10.     #include <stdlib.h>
  11.     #include "pgl32.h"
  12.  
  13.     int  device=DETECT, mask, mode, err, i, j, getch(void), bpp;
  14.     char path[]="\\bc\\bgi";
  15.     int data[1000];
  16.  
  17.     main()
  18.     {
  19.            initgraph( &device, &mode, path );
  20.            err = graphresult();
  21.            if( err != grOk )
  22.            {
  23.                 printf("\n initgraph() error =%d %s",err,grapherrormsg(err) );
  24.                 exit(1);
  25.            }
  26.            setcolor( 1 );
  27.            settextjustify(CENTER_TEXT,CENTER_TEXT);
  28.            rectangle( 0,0,getmaxx(),getmaxy() );
  29.            settextstyle(TRIPLEX_FONT, HORIZ_DIR, 8);
  30.            outtextxy( getmaxx()/2,getmaxy()/2," Hello World ");
  31.  
  32.            /* Init a drawing */
  33.            pgInitDrw( "bm.plt",getmaxx()+1,getmaxy()+1, &err);
  34.            if( err ){
  35.              closegraph();
  36.              printf(" Error opening BM.PLT!");
  37.              exit(1);
  38.             }
  39.  
  40.            pgSetFillMode(pgTRANS);
  41.  
  42.            /* Init a bitmap -------------------*/
  43.            /* 256 color : bpp = 8*/
  44.            /*  16 color : bpp = 4*/
  45.            /*   2 color : bpp = 1*/
  46.            bpp=1;
  47.            mask= (1<<bpp)-1;
  48.            pgBMInit(0,0,getmaxx()+1,getmaxy()+1,bpp,1);  
  49.  
  50.            for(j=0;j<=getmaxy();j++)
  51.             {
  52.             for(i=0;i<=getmaxx();i++)
  53.                {
  54.                if( bpp==1 ) data[i] = getpixel(i,j) > 0 ?  1 : 0; 
  55.                else data[i] = getpixel(i,j) & mask;
  56.                }
  57.             pgBMData(j,data);
  58.             }
  59.            pgBMEnd();
  60.            /* End bitmap definition ------------*/
  61.  
  62.          pgEndDrw();
  63.  
  64.          closegraph();
  65.     }
  66.