SRC: Получение ширины/высоты BMP-файла
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 31.07.02 09:17
Оценка: 14 (3)
В общем, я закончил (почти) Остался только Flash (*.swf). Хотя... мож еще чего вспомню

Функция получения ширины/высоты графического файла формата BMP (*.bmp) :


//---------------------------------------------------------------------------
bool GetBMPDim(const char* FileName, int& Width, int& Height)
{
Width = Height = -1;

FILE* hFile = fopen(FileName,"rb");
if(!hFile) return false;

BITMAPFILEHEADER   bmfh;
BITMAPINFOHEADER   bmih;

memset(&bmfh,0,sizeof(BITMAPFILEHEADER));
memset(&bmih,0,sizeof(BITMAPINFOHEADER));


if(!fread(&bmfh,sizeof(BITMAPFILEHEADER),1,hFile)) { //read header
  fclose(hFile);
  return false;
 }

char type[3] = {0};

memcpy (&type,&bmfh.bfType,2);
type[2]='\0';

if(strcmpi(type,"BM")!=0) { // bad file format
  fclose(hFile);
  return false;
}

if(!fread(&bmih,sizeof(BITMAPINFOHEADER),1,hFile)) { //read header
  fclose(hFile);
  return false;
 }


Width = bmih.biWidth;
Height = bmih.biHeight;

fclose(hFile);
return true;

}
//---------------------------------------------------------------------------


Пример использования:

int Width, Height;
GetBMPDim("C:\\test.bmp",Width,Height); // в Width - ширина, в Height - высота
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.