Имеется код подгрузки Bmp файла 24-бита.Заносит информацию в массив чаров data.Перерыл весь гугл,пролопатил кучу текста,но ни один способ по выводу на экран не работает.Прошу помочь мне,если можно готовым исходником.Работаю в Dev c++.Не использую Glaux,Glut и прочие.Ниже привожу код подгрузки bmp(только подгрузки)
Code
int toFour(int v)
{
for(;;++v)
{
if(v%4 == 0)
return v;
}
}
Функция округления к ближайшему большему числу,делящемуся на четыре.
Code
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
char* tmp;
char* data;
ifstream f;
f.open(FILE , ios::binary);
f.read((char*)&bfh,sizeof(BITMAPFILEHEADER));
f.read((char*)&bih,sizeof(BITMAPINFOHEADER));
tmp = new char[(bfh.bfSize-bfh.bfOffBits)];
cout<<"First pos = "<<f.tellg()<<endl;
f.seekg (bfh.bfOffBits,ios::beg);
cout<<"bfh.bfOffBits = "<<bfh.bfOffBits<<endl;
cout<<"Second pos = "<<f.tellg()<<endl;
f.read(tmp,bfh.bfSize-bfh.bfOffBits);
data = new char[bih.biHeight*bih.biWidth*bih.biBitCount/8];
int c = 1;
int j = 0;
ofstream log;
log.open("log.txt");
for (int i = 0;i<bfh.bfSize-bfh.bfOffBits;)
{
if (c <= bih.biWidth)
{
data[j+2] = tmp[i++];
data[j+1] = tmp[i++];
data[j] = tmp[i++];
j+=3;
}
else{
i+=toFour(bih.biWidth)-bih.biWidth;
c = 1;
}
log<<"c = "<<c<<endl;
log<<"i = "<<i<<endl;
log<<"j = "<<j<<endl<<endl;
++c;
}
Код подгрузки(имя файла определить дефайном - FILE)
:help: :help: :help: :help: