前段时间搞了一段时间图像采集,对BMP格式和JPG格式的图片又进一步深入的研究了一番,这篇博文就先介绍BMP格式文件的结构,在网上翻阅了很多资料,发现有很多大牛在这一点的研究颇深...下面就借鉴下他们的东西了...
首先,整个bmp文件的内容可以分为3到4块。之所以分为3到4块而不是固定的值,是因为,对于bmp来说可能存在调色板或者一些掩码。具体稍候讨论。
第一块是bmp的文件头用于描述整个bmp文件的情况。结构如下:
-
typedefstruct tagBITMAPFILEHEADER
-
{
-
WORD bfType;
-
DWORD bfSize;
-
WORD bfReserved1;
-
WORD bfReserved2;
-
DWORD bfOffBits;
-
} BITMAPFILEHEADER, *PBITMAPFILEHEADER;
这些信息相当有用,如果你想直接来解析bmp文件。第一个bfType用于表示文件类型,如果它是bmp文件,那么它这个位置的值一定是”BM”也就是0x4D42。第二个bfSize表示整个文件的字节数。第三第四个 则保留,目前无意义,最后一个相当重要,表示,位图的数据信息离文件头的偏移量,以字节为单位。
首先,整个bmp文件的内容可以分为3到4块。之所以分为3到4块而不是固定的值,是因为,对于bmp来说可能存在调色板或者一些掩码。具体稍候讨论。
第一块是bmp的文件头用于描述整个bmp文件的情况。结构如下:
-
typedefstruct tagBITMAPFILEHEADER
-
{
-
WORD bfType;
-
DWORD bfSize;
-
WORD bfReserved1;
-
WORD bfReserved2;
-
DWORD bfOffBits;
-
} BITMAPFILEHEADER, *PBITMAPFILEHEADER;
这些信息相当有用,如果你想直接来解析bmp文件。第一个bfType用于表示文件类型,如果它是bmp文件,那么它这个位置的值一定是”BM”也就是0x4D42。第二个bfSize表示整个文件的字节数。第三第四个 则保留,目前无意义,最后一个相当重要,表示,位图的数据信息离文件头的偏移量,以字节为单位。
reference from:http://blog.csdn.net/jurrah/article/details/4163333
另外还有一位大牛的博文写的也是相当的精彩http://www.cnblogs.com/beer/archive/2010/11/21/1883054.html
http://www.blogjava.net/georgehill/articles/6549.html
本文转自 驿落黄昏 51CTO博客,原文链接:http://blog.51cto.com/yiluohuanghun/864001,如需转载请自行联系原作者