1 #include "stdio.h"
2 
3 #include "bitmap.h"
4 
Bitmap(char * file)5 Bitmap::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()61 Bitmap::~Bitmap()
62 {
63 	delete []r;
64 	delete []g;
65 	delete []b;
66 } /* Bitmap::~Bitmap */
67