1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| void MaClasse::CreateAndSaveBMP()
{
ofstream bmpfile;
bmpfile.open("example.bmp", ios::out | ios::binary | ios::trunc);
if(!bmpfile.is_open())
{
cout << "ERROR: FILE COULD NOT BE OPENED" << endl;
return ;
}
CreateHeader(bmpfile);
CreatePalette(bmpfile);
CreatePixel(bmpfile);
bmpfile.close();
}
void MaClasse::CreateHeader(ofstream &bfile)
{
int width = 256; //will be coded with 4 bytes
int height = 256; //... 4 bytes
int Type = 19778; //... 2 bytes
int fSize = (width*height*1)+40+14+1024; //... 4 bytes
int Reserved1 = 0; //... 2 bytes
int Reserved2 = 0; //... 2 bytes
int Offset = 40+14+1024; //... 4 bytes
int hSize = 40; //... 4 bytes
int nbPlane = 1; //... 2 bytes
int nBPP = 8; //... 2 bytes
int Compression = 0; //... 4 bytes
int iSize = width*height*1; //... 4 bytes
int ResoX = 0; //... 4 bytes
int ResoY = 0; //... 4 bytes
int clrUsd = 256; //... 4 bytes
int clrImp = 0; //... 4 bytes
bfile.write((char*)&Type, 2);
bfile.write((char*)&fSize, 4);
bfile.write((char*)&Reserved1, 2);
bfile.write((char*)&Reserved2, 2);
bfile.write((char*)&Offset, 4);
bfile.write((char*)&hSize, 4);
bfile.write((char*)&width, 4);
bfile.write((char*)&height, 4);
bfile.write((char*)&nbPlane, 2);
bfile.write((char*)&nBPP, 2);
bfile.write((char*)&Compression, 4);
bfile.write((char*)&iSize, 4);
bfile.write((char*)&ResoX, 4);
bfile.write((char*)&ResoY, 4);
bfile.write((char*)&clrUsd, 4);
bfile.write((char*)&clrImp, 4);
}
void MaClasse::CreatePalette(ofstream &bfile)
{
int TabPalette[1024];
int i=0;
for (int x=0;x<256;x++)
{
TabPalette[i]=x;
i++;
TabPalette[i]=x;
i++;
TabPalette[i]=x;
i++;
TabPalette[i]=0;
i++;
}
for (int x=0;x<1024;x++)
{
bfile.write((char*)&TabPalette[x], 1);
}
}
void MaClasse::CreatePixel(ofstream &bfile)
{
int white = 255;
int black = 0;
for (int i=0;i<256*256;i++)
{
if ((i % 2) == 0)
bfile.write((char*)&white, 1);
else
bfile.write((char*)&black, 1);
}
} |
Partager