频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

11.1.1 位图文件结构分析

作者: 明日科技 宋坤 刘锐宁 出处:人民邮电出版社  2008-05-03 16:57    砖    好    评论   进入论坛
阅读提示:《Visual C++程序设计自学手册》主要是以初学者学习程序开发为中心,由浅入深地全面介绍使用Visual C++ 6.0开发程序的各种技术。本章讲述了多媒体技术,就位图文件、WAVE文件、AVI文件和Flash动画进行简单的介绍,其中需要重点掌握的是位图文件的各种操作。本节讲了位图文件结构分析

第十一章 多媒体技术

随着计算机技术的广泛应用,各种图文、音频和视频文件大量涌现,不断地冲击着人们的日常生活,从而使用户对应用程序的要求不断地提高,所以程序员在开发项目时也要处理各种的多媒体文件。在本章中就位图文件、WAVE文件、AVI文件和Flash动画进行简单的介绍,其中需要重点掌握的是位图文件的各种操作。通过学习本章,读者可以达到以下学习目的:

♣  了解位图文件结构;
♣  掌握位图文件的显示;
♣  掌握保存位图文件的方法;
♣  掌握JPEG和GIF文件的显示;
♣  掌握WAVE资源的播放;
♣  掌握WAVE文件的播放;
♣  掌握音量的控制;
♣  掌握AVI文件的播放;
♣  掌握Flash文件的播放。


 
| 11.1 | 图像处理技术

随着图形图像技术的发展,图像在程序界面的中的应用已经称为程序设计的主流,本章就以BMP位图文件为例介绍一下图像处理技术。

11.1.1  位图文件结构分析

位图(BMP)文件是Windows采用的图形文件格式,它常以bmp、dib或rle作为扩展名。位图文件最大的特点是没有经过压缩,它将图像中的每个像素的颜色值进行存储,所以文件本身比较大。位图文件由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节阵列(位图的实际数据)。

1.位图文件头
位图文件头可以用下面的数据结构来描述:

typedef struct tagBITMAPFILEHEADER { // bmfh 
WORD    bfType;
DWORD   bfSize;
WORD    bfReserved1;
WORD    bfReserved2;
DWORD   bfOffBits;
} BITMAPFILEHEADER;

数据结构中各参数的说明如表11.1所示。
表11.1 参数说明
参    数                          描    述
bfType               说明文件的类型,该值必需是0x4D42,即字符串“BM”。OS/2系统中也有位图,如果是OS/2系统此值可以是BA(Bitmap Array),CI(Color Icon)、CP(Color Pointer)、IC(Icon)、PT(Pointer),应用时要注意区分
bfSize               说明文件的大小,以字节为单位
bfReserved1          保留,必须设置为0
bfReserved2          保留,必须设置为0
bfOffBits 说明从文件头开始到实际的图像数据之间的字节的偏移量。这个参数是非常有用的,因为位图信息头和调色板的长度会根据不同情况而变化,所以用户可以用这个偏移值迅速地从文件中读取到位数据

2.位图信息头
位图信息头也可以用下面的数据结构来描述:

typedef struct tagBITMAPINFOHEADER{ // bmih 
DWORD  biSize;
LONG   biWidth;
LONG   biHeight;
WORD   biPlanes;
WORD   biBitCount;
DWORD  biCompression;
DWORD  biSizeImage;
LONG   biXPelsPerMeter;
LONG   biYPelsPerMeter;
DWORD  biClrUsed;
DWORD  biClrImportant;
} BITMAPINFOHEADER;
数据结构中各参数的说明如表11.2所示。
表11.2 参数说明
参    数                              描    述
biSize             说明BITMAPINFOHEADER结构所需要的字数,这个值并不一定是BITMAPINFOHEADER结构的尺寸,它也可能是sizeof(BITMAPV4HEADER)的值,或是sizeof(BITMAPV5HEADER)的值。BITMAPV4HEADER是Windows 95 和 Windows NT 4.0的位图结构,BITMAPV5HEADER是Windows NT 5.0 和 Windows 98的位图结构,Windows NT以前使用BITMAPINFOHEADER结构。实际使用过程中要根据系统来决定,但绝大多数的位图图像都是BITMAPINFOHEADER结构的
biWidth            说明图像的宽度,以像素为单位
biHeight           说明图像的高度,以像素为单位。这个值除了用于描述图像的高度之外,它还有另一个用处,就是指明该图像是倒向的位图,还是正向的位图。如果该值是一个正数,说明图像是倒向的;如果该值是一个负数,则说明图像是正向的。大多数的位图文件都是倒向的位图。当高度值是一个负数时,图像将不能被压缩
biPlanes           为目标设备说明位面数,其值总是被设为1
biBitCount             说明比特数/像素,值为1、4、8、16、24、或32
biCompression       说明图像数据压缩的类型。值可以是BI_RGB、BI_RLE8、BI_RLE4和BI_BITFIELDS。BI_RGB说明位图没有压缩;BI_RLE8说明使用每个像素8比特的RLE压缩编码;BI_RLE4说明使用每个像素4比特的RLE压缩编码;BI_BITFIELDS说明每个像素的比特由指定的掩码决定
biSizeImage              说明图像的大小,以字节为单位。当用BI_RGB格式时,可设置为0
biXPelsPerMeter       说明水平分辨率,用像素/米表示
biYPelsPerMeter        说明垂直分辨率,用像素/米表示
biClrUsed            说明位图实际使用的彩色表中的颜色索引数,如果设为0,则说明使用所有调色板项
biClrImportant            说明对图像显示有重要影响的颜色索引的数目,如果是0,表示都重要

3.彩色表
彩色表用下面的数据结构描述:

typedef struct tagRGBQUAD { // rgbq 
BYTE    rgbBlue;
BYTE    rgbGreen;
BYTE    rgbRed;
BYTE    rgbReserved;
} RGBQUAD;
数据结构中各参数的说明如表11.3所示。
表11.3 参数说明
参    数 描    述
rgbBlue 指定蓝色强度
rgbGreen 指定绿色强度
rgbRed 指定红色强度
rgbReserved 保留,设置为0

4.位图数据
紧跟在彩色表之后的是图像数据字节阵列。图像的每行由表示图像像素的连续的字节组成,每一行的字节数取决于图像的颜色数目和用像素表示的图像宽度。扫描行是由底向上存储的,这就是说,阵列中的第1个字节表示位图左下角的像素,而最后一个字节表示位图右上角的像素。如果是正向DIB,则扫描行是由顶向下存储的。

【责任编辑:阚书 TEL:(010)68476606】

回书目   上一节   下一节
专题
系统应用日志分析管理
主流防火墙性能对比分析
全面解构SOA技术理念
DDoS攻击防御与分析
Windows 系统进程分析
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
Vista SP1对决XP SP3
Vista SP1对决XP SP3
AIX操作系统管理应用(专题)
AIX操作系统管理应用(专题)
2008年上半年全国软考冲刺辅导
2008年上半年全国软考冲刺辅导
· 2008年上半年全国软考..
· 微软出价446亿美元收购..
· 华为员工自杀频频拷问..
· 三层交换技术专题
· ARP攻击防范与解决方案
· 隐私保护技术探讨
· 反垃圾邮件技术应用
· 龙芯要做中国的“奔腾”
· Windows Server 2008专..
· AMD Phenom三核处理器..
· 路由器设置与口令恢复
· 微软Forefront企业安全..
· LAMP技术精解
· 企业数据恢复指南
· 技术人求职简历完备手册
· Apache技术专题
ARP攻击防范与解决方案
ARP攻击防范与解决方案
iSCSI应用与发展
iSCSI应用与发展
SQL Server 2008/2005全解
SQL Server 2008/2005全解
· SQL Server 2008/2005..
· SOA 面向服务架构
· SQL Server 2008/2005..
· iSCSI应用与发展
· RAID——磁盘阵列基础
· Apache技术专题
· 中间件应用技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Apache技术专题
· 国际文档格式标准开战
· 路由器设置与口令恢复
· 打造安全服务器
· SOA 面向服务架构
· PHP开发应用手册
· 企业数据恢复指南
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
iSCSI应用与发展
iSCSI应用与发展
· iSCSI应用与发展
· 中间件应用技术专题
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· iSCSI应用与发展
· 三层交换技术专题
· Apache技术专题
· RAID——磁盘阵列基础
· 企业数据恢复指南
· 路由器设置与口令恢复
· SOA 面向服务架构
· ADSL应用面面俱到
· ADSL应用面面俱到
· 反垃圾邮件技术应用