#include<fstream>
#include<iostream>
using namespace std;
typedef unsigned char var8;
typedef unsigned int uvar32;
typedef unsigned short int uvar16;
typedef struct {var8 Blue,Green,Red,Reserved; } Palette;
int main()
{
uvar32Size,Offset,Height,Width,Compress,Reserved,InfoHeaderSize,Colors,ImportantColors,DataSize,HResolution,VResolution;
uvar16 Planes,Bit;
int i,j;
var8 type[2],imdata[256][256];
Palette Rgbquad;
ifstream fin;
fin.open("a3.bmp",ios::binary);
if(!fin)
{
cout<<"Nothis file!\n";
return 1;
}
fin.read((char*)&type,2);
cout<<"filetype:"<<type[0]<<type[1]<<endl;
fin.read((char*)&Size,sizeof(uvar32));
cout<<"filesize:"<<Size<<endl;
fin.read((char*)&Reserved,sizeof(uvar32));
cout<<"Reserveddword:"<<Reserved<<endl;
fin.read((char*)&Offset,sizeof(uvar32));
cout<<"Offset:"<<Offset<<endl;
fin.read((char*)&InfoHeaderSize,sizeof(uvar32));
cout<<"Bitmap InfoHeaderSize:"<<InfoHeaderSize<<endl;
fin.read((char*)&Width,sizeof(uvar32));
cout<<"BitmapWidth:"<<Width<<endl;
fin.read((char*)&Height,sizeof(uvar32));
cout<<"BitmapHeight:"<<Height<<endl;
fin.read((char*)&Planes,sizeof(uvar16));
cout<<"BitmapPlanes:"<<Planes<<endl;
fin.read((char*)&Bit,sizeof(uvar16));
cout<<"Bits perPixel:"<<Bit<<endl;
fin.read((char*)&Compress,sizeof(uvar32));
cout<<"Compress YorN:"<<Compress<<endl;
if(Compress) {fin.close();return 2;}
fin.read((char*)&DataSize,sizeof(uvar32));
cout<<"DataSize:"<<DataSize<<endl;
fin.read((char*)&HResolution,sizeof(uvar32));
cout<<"HResoluton:"<<HResolution<<endl;
fin.read((char*)&VResolution,sizeof(uvar32));
cout<<"VResolution:"<<VResolution<<endl;
fin.read((char*)&Colors,sizeof(uvar32));
cout<<"Colors:"<<Colors<<endl;
fin.read((char*)&ImportantColors,sizeof(uvar32));
cout<<"ImportantColors:"<<ImportantColors<<endl;
for(i=0;i<256;i++)
{
fin.read((char*)&Rgbquad,sizeof(Palette));
cout<<int(Rgbquad.Blue)<<""<<int(Rgbquad.Green)<<""<<int(Rgbquad.Red)<<""<<int(Rgbquad.Reserved)<<endl;
}
fin.seekg(Offset,ios::beg);
for(i=255;i>=0;i--)
{
for(j=0;j<256;j++)
{
fin.read((char*)&imdata[i][j],sizeof(var8));
}
}
return 0;
}
此时,copy一个bmp格式文件到你的当前工作目录下,调试运行即可!