1 #include "stdio.h" 2 3 #include "bitmap.h" 4 Bitmap(char * file)5Bitmap::Bitmap(char *file) 6 { 7 FILE *fp; 8 int i,j; 9 10 dx=0; 11 dy=0; 12 bitcount=24; 13 r=0; 14 g=0; 15 b=0; 16 17 fp=fopen(file,"rb"); 18 if (fp==NULL) return; 19 20 /* Tag: */ 21 if (fgetc(fp)!='B' || fgetc(fp)!='M') return; 22 23 /* Saltarse Header: */ 24 for(i=0;i<12;i++) fgetc(fp); 25 26 /* Info-Header: */ 27 for(i=0;i<4;i++) fgetc(fp); 28 29 dx=fgetc(fp); 30 dx+=fgetc(fp)<<8; 31 fgetc(fp); 32 fgetc(fp); 33 dy=fgetc(fp); 34 dy+=fgetc(fp)<<8; 35 fgetc(fp); 36 fgetc(fp); 37 38 r=new unsigned char[dx*dy]; 39 g=new unsigned char[dx*dy]; 40 b=new unsigned char[dx*dy]; 41 42 for(i=0;i<28;i++) fgetc(fp); 43 44 for(i=dy-1;i>=0;i--) { 45 for(j=0;j<dx;j++) { 46 b[i*dx+j]=fgetc(fp); 47 g[i*dx+j]=fgetc(fp); 48 r[i*dx+j]=fgetc(fp); 49 // fgetc(fp); 50 } /* for */ 51 if ((dx*3)%4!=0) { 52 for(j=0;j<(4-(dx*3)%4);j++) fgetc(fp); 53 } /* if */ 54 } /* for */ 55 56 fclose(fp); 57 58 } /* Bitmap::Bitmap */ 59 60 ~Bitmap()61Bitmap::~Bitmap() 62 { 63 delete []r; 64 delete []g; 65 delete []b; 66 } /* Bitmap::~Bitmap */ 67