Visual C++ MFC в подробностях
Страница 5. BITMAPFILEHEADER


BITMAPFILEHEADER

Эта структура описана в файле wingdi.h. Эта структура идет самой первой в файле BMP. Вот её описание.

typedef struct tagBITMAPFILEHEADER {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;

Первой переменной идет bfType - эта переменная содержит тип файла. В нормальном растре первыми буквами идет BM в виде ASCII или 4D42 в шестнадцатеричном виде.

Дальше bfSize должен содержать размер файла в байтах. Говорят, что это значение ненадежно и использовать его не стоит.

bfReserved1 & bfReserved2 зарезервированы и использовать их не нужно.

bfOffBits смещение в байтах от начала растра до массива данных. Этим можно пользоваться.

Прочитать заголовок можно примерно так.

CString filename;
CFileDialog fil(TRUE,"bmp","*.bmp");
if (fil.DoModal()==IDOK)
{
filename=fil.GetPathName();
CFile cf(filename,CFile::modeRead);
BITMAPFILEHEADER bf;
cf.Read((void *)&bf,sizeof(bf));
cf.Close();
}

 
« Предыдущая статья   Следующая статья »