home *** CD-ROM | disk | FTP | other *** search
- /*
- *********************************************************************
- * BM.C PGL - Screen-Bitmap dump to drawing file
- * PGL can support 1,2,4, or 8 bit per pixel color bitmaps
- * Uses Turbo C BGI !
- *********************************************************************
- */
- #include <graphics.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include "pgl32.h"
-
- int device=DETECT, mask, mode, err, i, j, getch(void), bpp;
- char path[]="\\bc\\bgi";
- int data[1000];
-
- main()
- {
- initgraph( &device, &mode, path );
- err = graphresult();
- if( err != grOk )
- {
- printf("\n initgraph() error =%d %s",err,grapherrormsg(err) );
- exit(1);
- }
- setcolor( 1 );
- settextjustify(CENTER_TEXT,CENTER_TEXT);
- rectangle( 0,0,getmaxx(),getmaxy() );
- settextstyle(TRIPLEX_FONT, HORIZ_DIR, 8);
- outtextxy( getmaxx()/2,getmaxy()/2," Hello World ");
-
- /* Init a drawing */
- pgInitDrw( "bm.plt",getmaxx()+1,getmaxy()+1, &err);
- if( err ){
- closegraph();
- printf(" Error opening BM.PLT!");
- exit(1);
- }
-
- pgSetFillMode(pgTRANS);
-
- /* Init a bitmap -------------------*/
- /* 256 color : bpp = 8*/
- /* 16 color : bpp = 4*/
- /* 2 color : bpp = 1*/
- bpp=1;
- mask= (1<<bpp)-1;
- pgBMInit(0,0,getmaxx()+1,getmaxy()+1,bpp,1);
-
- for(j=0;j<=getmaxy();j++)
- {
- for(i=0;i<=getmaxx();i++)
- {
- if( bpp==1 ) data[i] = getpixel(i,j) > 0 ? 1 : 0;
- else data[i] = getpixel(i,j) & mask;
- }
- pgBMData(j,data);
- }
- pgBMEnd();
- /* End bitmap definition ------------*/
-
- pgEndDrw();
-
- closegraph();
- }