BMP文件构成:
文件头+文件信息头+RGB数据
文件头正常为14字节;
文件信息头正常为40字节。
RGB数据与文件头偏移量正常为14+40=54
BMP图像操作:
1. 打开图像文件
2. 读取文件头
3. 读取文件信息头
4. 读取RGB数据
5. 关闭图像文件
6. 对RGB数据进行操作。
RGB数据读取:
1. 获取RGB数据开始位置与文件头位置之间的偏移量(BITMAPFILEHEADER.bfoffbits)
2. 将CFile指针移动至RGB数据头位置(seekto(偏移量,0))
3. 读取字节对齐了大小的数据
字节对齐大小计算:
一行大小:n=(bmih.biWidth*bmih.biBitCount +31)/32*4;
整张图大小:n*bmih.biHeight
示例(实现上下翻转):
cFile.Open(strfilepathorg,CFile::modeRead );
cFile.SeekToBegin();
cFile.Read(&bmfh,sizeof