BMP格式结构详解

简介:

     前段时间搞了一段时间图像采集,对BMP格式和JPG格式的图片又进一步深入的研究了一番,这篇博文就先介绍BMP格式文件的结构,在网上翻阅了很多资料,发现有很多大牛在这一点的研究颇深...下面就借鉴下他们的东西了...

   首先,整个bmp文件的内容可以分为3到4块。之所以分为3到4块而不是固定的值,是因为,对于bmp来说可能存在调色板或者一些掩码。具体稍候讨论。

  第一块是bmp的文件头用于描述整个bmp文件的情况。结构如下:


 
  1. typedefstruct tagBITMAPFILEHEADER

  2. {  

  3. WORD bfType;  

  4. DWORD bfSize;  

  5. WORD bfReserved1;  

  6. WORD bfReserved2;  

  7. DWORD bfOffBits;

  8. } BITMAPFILEHEADER, *PBITMAPFILEHEADER;

   这些信息相当有用,如果你想直接来解析bmp文件。第一个bfType用于表示文件类型,如果它是bmp文件,那么它这个位置的值一定是”BM”也就是0x4D42。第二个bfSize表示整个文件的字节数。第三第四个 则保留,目前无意义,最后一个相当重要,表示,位图的数据信息离文件头的偏移量,以字节为单位。

    首先,整个bmp文件的内容可以分为3到4块。之所以分为3到4块而不是固定的值,是因为,对于bmp来说可能存在调色板或者一些掩码。具体稍候讨论。


第一块是bmp的文件头用于描述整个bmp文件的情况。结构如下:


 
  1. typedefstruct tagBITMAPFILEHEADER

  2. {  

  3. WORD bfType;  

  4. DWORD bfSize;  

  5. WORD bfReserved1;  

  6. WORD bfReserved2;  

  7. DWORD bfOffBits;

  8. } 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,如需转载请自行联系原作者



相关文章
|
存储 Web App开发 编解码
图片:前端展示图像(img 、picture、svg、canvas )及常用图片格式(PNG、JPG、JPEG、WebP、GIF、SVG、AVIF等)
图片:前端展示图像(img 、picture、svg、canvas )及常用图片格式(PNG、JPG、JPEG、WebP、GIF、SVG、AVIF等)
901 1
|
7月前
|
人工智能 算法 Java
png,jpg,jpeg,gif,webp这些图片格式解释一下,分别什么时候用?
png,jpg,jpeg,gif,webp这些图片格式解释一下,分别什么时候用?
136 0
|
编解码 C++ 开发者
MPEG vs JPEG
MPEG vs JPEG
|
存储 XML 算法
BMP、GIF、TIFF、PNG、JPG和SVG格式图像的特点
BMP、GIF、TIFF、PNG、JPG和SVG格式图像的特点
BMP、GIF、TIFF、PNG、JPG和SVG格式图像的特点
PNG、JPEG、BMP等几种图片格式详解
PNG、JPEG、BMP等几种图片格式详解(一)—— PNGPNG、JPEG、BMP等几种图片格式详解(二)—— JPEGPNG、JPEG、BMP等几种图片格式详解(三)—— BMPPNG、JPEG、BMP等几种图片格式详解(四)—— GIF ...
1208 0
|
C# 开发者 图形学
C# 如何将PDF转为多种图像文件格式(Png/Bmp/Emf/Tiff)
PDF是一种在我们日常工作学习中最常用到的文档格式之一,但常常也会因为文档的不易编辑的特点,在遇到需要编辑PDF文档内容或者转换文件格式的情况时让人苦恼。通常对于开发者而言,可选择通过使用组件的方式来实现PDF文档的编辑或者格式转换,因此本文将介绍如何通过使用免费版的组件Free Spire.PDF for .NET来转换PDF文档。
1614 0
|
存储 编解码 算法
|
存储 计算机视觉 芯片