Bmp 解析 (2013-09-09 19:30:41)

bmp 图片结构

位图格式(bmp)是显示图片的基本格式,其文件扩展名为*.BMP。

在Windows下,任何各式的图片文件(包括视频播放)都要转化为位图才能显示出来,其他各种格式的图片文件是在位图格式的基础上采用不同的压缩算法生成的。所以,理解bmp格式的结构是图像视频处理的基础。

一、位图文件(*.BMP)的格式。

位图文件主要分为如下3个部分:

块名称          对应Windows结构体定义       大小(Byte)

文件信息头         BITMAPFILEHEADER             14

位图信息头         BITMAPINFOHEADER             40

RGB颜色阵列           BYTE*                由图像长宽尺寸决定

BMP文件头、信息头、颜色表、图形数据四个部分组成;对于24位、32位则没有颜色表字段,低位图则存在色彩索引表。

1、BITMAPFILEHEADER

结构体定义如下:

typedef struct tagBITMAPFILEHEADER {

UINT bfType;

DWORD bfSize;

UINT bfReserved1;

UINT bfReserved2;

DWORD bfOffBits;

} BITMAPFILEHEADER;

其中:

bfType         说明文件的类型,该值必需是0x4D42,也就是字符‘BM‘。

bfSize         说明该位图文件的大小,用字节为单位

bfReserved1    保留,必须设置为0

bfReserved2    保留,必须设置为0

bfOffBits      从FILEHEADER开始到图象数据之间的字节的偏移量。INFOHEADER和调色板的长度会变化,可以用这个值迅速的从文                件中读取到位数据。

Bmp 解析 (2013-09-09 19:30:41),布布扣,bubuko.com

时间: 2024-07-30 03:49:40

Bmp 解析 (2013-09-09 19:30:41)的相关文章

C#正则表达式基础 [0-9][0-9] 检测字符串是否存在两个相邻的数字

1 代码 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Net; 5 using System.Text; 6 using System.Text.RegularExpressions; 7 using System.Threading.Tasks; 8 9 namespace ConsoleApplication7 10 { 11 class Program 12

9.1-9.30推荐文章汇总

9.1-9.30推荐文章汇总 [移动开发] Android 自己定义ScrollView ListView 体验各种纵向滑动的需求        鸿洋_ [Unity3D]Unity3D游戏开发之Xml解析实现NPC对话系统        秦元培 Android Touch事件分发过程        Mr-Simp1e Android View 事件分发机制 源代码解析 (上)        鸿洋_ [Unity3D]Unity3D游戏开发之自己主动寻路与Mecanim动画系统的结合      

2019.09.09学习整理

2019.09.09学习整理 基于socket套接字的UDP协议 UDP套接字示例 客户端 import socket cli = socket.socket(type=socket.SOCK_DGRAM) while True: msg = input('>>:').strip() cli.sendto(msg.encode('utf-8'), ('127.0.0.1', 8003)) data,ser_addr=cli.recvfrom(1024) cli.close() 服务端 impo

「深入 Exchange 2013」09 证书

今儿咱们来聊Exchange里的证书,CAS与MBX角色都有用到证书的地方,只是CAS角色更依赖证书一些,在一台Exchange服务器刚刚安装完成的时候,安装程序会自动生成一张自签名证书,这张自签名证书往往并不满足咱们的需求,所以咱们一般会向企业CA再去针对Exchange所涉及到的多个IIS服务的DNS备用名称申请合适的额证书. Exchange在哪些地方用到证书 1. 让客户端验证服务器的身份.这是最常规的用法,大多数管理员可能都碰到过证书名称不匹配引起的客户端报错. 2. 服务器去验证客户

一年总结 2013.09-2014.09

夏天过去了就意味着我们又走过了一年.每每到这个时候我总是会翻开以前的记录,博客来找以前的脚印, 以前的回忆.站在现在的角度去看过去,总是会感到以前的不成熟,看到现在的改变,也可以这么说自己就是自 己的一面镜子. 一年过去了,要向前看,还要回头望望. 考试系统项目:9月份-12月份 考试系统从一开始,需求就是一张很大的思维导图,我们围绕着这张思维导图讨论了一段时间,先是弄懂需 求,再是分技术点,难点,分类去整理这些东西.看似庞大的一张图片,越分析越清楚.这些东西都弄的差不多 之后我们就开始分任务,

Jquery 操作Html 控件 CheckBox、Radio、Select 控件 【转】http://www.cnblogs.com/lxblog/archive/2013/01/09/2853056.html

Jquery 操作Html 控件 CheckBox.Radio.Select 控件 在使用 Javascript 编写前台脚本的时候,经常会操作 Html 控件,比如 checkbox.radio.select,用 Jquery 库操作其他会方便很多,下面用Jq对这些控件的操作进行一个全面的代码总结. 一.Jquery 对 CheckBox 的操作: <input id="ckb1" name="ckb" checked="checked"

调试mvc 源码【转:http://www.cnblogs.com/wucj/archive/2013/06/09/3128698.html】

最近在研究asp.net mvc的源码,于是在想,既然提供了源码,那我们如何进入源码调试了?在网上找了一些调试的方法,试了几个都不行,于是折腾了一上午,终于弄出来了,下面看看我的操作步骤.   一:准备工作.本机安装的是vs2012,打了update1的补丁包,如图 接下来下载asp.net mvc的源码,地址是:http://aspnetwebstack.codeplex.com/ ,下载之后解压出来即可. 二:有两种方式可以调试源码,分别是:1)直接在源码的解决方案下新建一个asp.net

【虚拟化实战】在线沙龙请您参加(19:30 周一 7月28日)

最近有朋友留言提问,关于虚拟化架构设计中需要注意的问题,尤其是存储相关的相对较多,我很想把其中的一些关于存储虚拟化设计的问题集中解答,同时介绍一个新产品,可以帮助用户提高存储虚拟化的性能,这次以在线沙龙的形式和大家探讨存储虚拟化在实战中的挑战和经验.同时也希望您积极提问,我尽我所能答疑. 本次讨论的重点是存储在虚拟化设计中的考虑因素,特别介绍了如何利用闪存来提升存储的性能.最后我们会在真实环境中实战演示. 特别感谢VMware高级技术讲师姚泉和我共同举办这次在线沙龙. 日期:2014.7.28

练习09.09|Java编程笔试面试题

1.如果程序代码为:public class Demo{public static void main (String[ ] args){String a=args[1];System.out.println(a);进行编译后,执行以下命令将得到什么结果?java Demo a1 a2 a3结果:a22.现有一个类定义如下,请回答问题:class Employee{String name;int age;double wage;static int No=0;Employee(String a1