#pragma pack(push, 1) typedef struct tagBITMAPFILEHEADER { Word bfType; //тип файла (для битового образа - BM) Dword bfSize; //размер файла в dword Word bfReserved1; //не используется Word bfReserved2; //не используется Dword bfOffbits; //смещение данных битового образа от заголовка в байтах } tagBITMAPFILEHEADER; typedef struct tagBITMAPINFOHEADER { Dword biSize; //число байт, занимаемых структурой BITMAPINFOHEADER Dword biWidth; //ширина битового образа в пикселах Dword biHeight; //высота битового образа в пикселах Word biPlanes; //число битовых плоскостей устройства Word biBitCount; //число битов на пиксель Dword biCompression; //тип сжатия Dword biSizeImage; //размер картинки в байтах Dword biXPelsPerMeter; //горизонтальное разрешение устройства, пиксел/м Dword biYPelPerMeter; //вертикальное разрешение устройства, пиксел/м Dword biClrUsed; //число используемых цветов Dword biClrImportant; //число "важных" цветов } tagBITMAPINFOHEADER; typedef struct tagRGBQUAD { Byte rgbBlue; Byte rgbGreen; Byte rgbRed; Byte rgbReserved; } tagRGBQUAD; #pragma pack(pop) class BMPFile { protected: tagBITMAPFILEHEADER Bmp_head; tagBITMAPINFOHEADER Info_head; public: Dword width; Dword height; Byte* buffer; int BMPFile::LoadBMPFile(Byte* filebuff, Dword filesize); };