Подробности - 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();
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 12.03.2000