C/C++の宿題やらせてください。9代目
■ このスレッドは過去ログ倉庫に格納されています
0360デフォルトの名無しさん
NGNG読み込むだけなら、いろいろ計算せずに、こんな感じでいけると思うんだけど。
BITMAPFILEHEADER fileHeader;
char *buff;
int bodySize;
BITMAPINFO* bitmapInfo;
RGBQUAD*rgbuad;
char* data;
// とりあえずヘッダーだけ読む
read(fh, &fileHeader, sizeof(fileHeader));
// 残りを読み込むバッファを確保
bodySize = fileHeader.FileSize - sizeof(BITMAPFILEHEADER);
buff = (char*) malloc(bodySize);
// 残りを一気に読み込む
read(fh, buff, bodySize);
// BITMAPINFO の開始位置を計算
bitmapInfo = (BITMAPINFO*) buff;
// RGBQUAD の開始位置は計算
rgpQuad = (RGBQUAD*) (buff + sizeof(BITMAPINFOHEADER));
// ビットマップデータの開始位置を計算
data = buff + fileHeader.Offset - sizeof(BITMAPFILEHEADER);
// あとは、bitmapInfo, rgbQuad, data を利用して好きに料理する
■ このスレッドは過去ログ倉庫に格納されています