BMP格式结构详解

前段时间搞了一段时间图像采集,对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

本文出自 “驿落黄昏” 博客,请务必保留此出处http://yiluohuanghun.blog.51cto.com/3407300/864001

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索word
, 文件
, 结构
, bmp
, 字节
, 位图解析
, 大牛
详解BMP木马
bmp文件格式详解、bmp格式详解、bmp图片格式详解、bmp图片详解、bmp格式,以便于您获取更多的相关知识。

时间: 2024-11-03 15:32:55

BMP格式结构详解的相关文章

【数字图像处理】七.MFC图像增强之图像普通平滑、高斯平滑、Laplacian、Sobel、Prewitt锐化详解

       本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行讲解,主要通过MFC单文档视图实现显示BMP图像增强处理,包括图像普通平滑.高斯平滑.不同算子的图像锐化知识.希望该篇文章对你有所帮助,尤其是初学者和学习图像处理的学生.        [数字图像处理]一.MFC详解显示BMP格式图片        [数字图像处理]二.MFC单文档分割窗口显示图片        [数字图像处理]三.MFC实现图像灰度.采样和量化功能详解  

Fireworks 4.0 的COMMANDS(命令)的各种功能详解

command|详解 Command在Fireworks3中才被引入.这个功能在很多方面为我们节省了大量的工作时间.同时它是完全开放的,对于精通Javascript脚本的又喜欢用FW制作Web应用图像的朋友来说这是再好不过的了,你完全可以根据自己的需求编写命令插件.而Command最为显著的功能是批量处理,有了这个好处,我们可以对各种类型的图形图像进行统一的效果操作.现在就让我们来了解这些知识吧. 一,基础命令部分. 首先,让我们来简单了解一下Fireworks4中基本的Command.见下表:

走近VB.Net(三) 源码详解—运用颜色的初步探讨

详解 走近VB.Net(三) 源码详解-运用颜色的初步探讨 新建一个工程,加入以下控件1. label控件:label1,label2,labred ,labblue,labgreen2. picturebox控件:picturebox13. button控件:Button1设置form1的opacity属性为80%,设置透明的窗体在office中抓取一幅取色图片存为bmp格式,并设为picturebox1的backgroundimage,即背景图片Option Strict Off '关闭 s

.net中webconfig 详解

 这篇文章主要介绍了.net中webconfig 详解,需要的朋友可以参考下     .net 提供的是针对当前机器的配置.---名称:machine.config 运行机制:asp.net网站IIS启动的时候会加载配置文件中的配置信息,然后缓存这些信息,这样就不必每次去读取配置信息.在运行过程中asp.net应用程序会监视配置文件的变化情况,一旦编辑了这些配置信息,就会重新读取这些配置信息并缓存. 配置文件节点: 必须明白: web.config文件是一个XML文件 所隶属根节点的名称:  

JavaScript原生对象之String对象的属性和方法详解

 这篇文章主要介绍了JavaScript原生对象之String对象的属性和方法详解,本文讲解了length.charAt().charCodeAt().concat().indexOf().lastIndexOf()等方法属性,需要的朋友可以参考下     length length 属性可返回字符串中的字符数目. length 是根据字符串的UTF-16编码来获取长度的,空字符串长度为0.length 不可修改. charAt() charAt() 方法可返回指定位置的字符.注意,JavaSc

Windows下搭建Mantis详解

Windows下搭建Mantis详解 下边是在Windows下搭建Mantis的详细过程,太长了,只能分开发上来,不过我会附一个pdf的文件上来,需要的可以下载. 搭建环境:        apache_2.2.13-win32-x86-no_ssl.msi        php-5.3.0-Win32-VC6-x86.zip        mysql-5.0.22-win32.zip        mantisbt-1.1.7.zip        辅助工具:        EMS(myman

PHP文件上传实例详解!!!_php基础

首先来看下上传部分的表单代码:   复制代码 代码如下:      <form method="post" action="upload.php" enctype="multipart/form-data">        <table border=0 cellspacing=0 cellpadding=0 align=center width="100%">         <tr>  

Android Bitmap压缩方法的选择详解_Android

刚刚修改Bug碰到了一个问题,先描述一下问题. 1.测试说分享文章到微信失败,QQ成功. 定位到微信分享接口. 2.分享其它文章到微信成功. 接口有问题!差点就找接口了,还好没 3.断点微信分享,发现突然压缩失败. 代码写法问题,下面会分解 4.找到原因,微信对分享缩略图大小有32k的限制,代码是对文章的第一张图片进行压缩,图片太大,压缩代码也有问题. 开始解决问题 这里有两种解决方法: 1.接口提供文章对应的分享内容,在编辑人员编辑文章的时候就对这些数据进行了限制. { "title"

Android入门之画图详解_Android

前文常用的控件介绍了不少,现在就来讨论一下手机开发中常用到的画图.要掌握Android的画图,首先就要了解一下,基本用到的如下一些图形接口: 1.Bitmap,可以来自资源/文件,也可以在程序中创建,实际上的功能相当于图片的存储空间: 2.Canvas,紧密与Bitmap联系,把Bitmap比喻内容的话,那么Canvas就是提供了众多方法操作Bitamp的平台: 3.Paint,与Canvas紧密联系,是"画板"上的笔刷工具,也用于设置View控件上的样式: 4.Drawable,如果