bmp格式及rgb详讲

bmp格式及rgb详讲

ID:35198836

大小:18.05 KB

页数:5页

时间:2019-03-21

bmp格式及rgb详讲_第1页
bmp格式及rgb详讲_第2页
bmp格式及rgb详讲_第3页
bmp格式及rgb详讲_第4页
bmp格式及rgb详讲_第5页
资源描述:

《bmp格式及rgb详讲》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、BMP图像文件格式对于现存的所有的图像文件格式,我们在这里主要介绍BMP图像文件格式,并且文件里的图像数据是未压缩的,因为图像的数字化处理主要是对图像中的各个像素进行相应的处理,而未压缩的BMP图像中的像素数值正好与实际要处理的数字图像相对应,这种格式的文件最合适我们对之进行数字化处理。请读者记住,压缩过的图像是无法直接进行数字化处理的,如JPEG、GIF等格式的文件,此时首先要对图像文件解压缩,这就要涉及到一些比较复杂的压缩算法。后续章节中我们将针对特殊的文件格式如何转换为BMP格式的文件问题作专门的论述,经过转换,我们就可以利用得到的未压缩

2、的BMP文件格式进行后续处理。对于JPEG、GIF等格式,由于涉及到压缩算法,这要求读者掌握一定的信息论方面的知识,如果展开的话,可以写一本书,限于篇幅原因,我们只作一般性的讲解,有兴趣的朋友可以参考相关书籍资料。一、BMP文件结构1.BMP文件组成BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。文件头主要包含文件的大小、文件类型、图像数据偏离文件头的长度等信息;位图信息头包含图象的尺寸信息、图像用几个比特数值来表示一个像素、图像是否压缩、图像所用的颜色数等信息。颜色信息包含图像所用到的颜色表,显示图像时需用到这个颜色表来生成调色

3、板,但如果图像为真彩色,既图像的每个像素用24个比特来表示,文件中就没有这一块信息,也就不需要操作调色板。文件中的数据块表示图像的相应的像素值,需要注意的是:图像的像素值在文件中的存放顺序为从左到右,从下到上,也就是说,在BMP文件中首先存放的是图像的最后一行像素,最后才存储图像的第一行像素,但对与同一行的像素,则是按照先左边后右边的的顺序存储的;另外一个需要读者朋友关注的细节是:文件存储图像的每一行像素值时,如果存储该行像素值所占的字节数为4的倍数,则正常存储,否则,需要在后端补0,凑足4的倍数。2.BMP文件头BMP文件头数据结构含有BMP

4、文件的类型、文件大小和位图起始位置等信息。其结构定义如下:typedefstructtagBITMAPFILEHEADER{WORDbfType;//位图文件的类型,必须为“BM”DWORDbfSize;//位图文件的大小,以字节为单位WORDbfReserved1;//位图文件保留字,必须为0WORDbfReserved2;//位图文件保留字,必须为0DWORDbfOffBits;//位图数据的起始位置,以相对于位图文件头的偏移量表示,以字节为单位}BITMAPFILEHEADER;该结构占据14个字节。3.位图信息头BMP位图信息头数据用于

5、说明位图的尺寸等信息。其结构如下:typedefstructtagBITMAPINFOHEADER{DWORDbiSize;//本结构所占用字节数LONGbiWidth;//位图的宽度,以像素为单位LONGbiHeight;//位图的高度,以像素为单位WORDbiPlanes;//目标设备的平面数不清,必须为1WORDbiBitCount//每个像素所需的位数,必须是1(双色),4(16色),8(256色)或24(真彩色)之一DWORDbiCompression;//位图压缩类型,必须是0(不压缩),1(BI_RLE8压缩类型)或2(BI_RL

6、E4压缩类型)之一DWORDbiSizeImage;//位图的大小,以字节为单位LONGbiXPelsPerMeter;//位图水平分辨率,每米像素数LONGbiYPelsPerMeter;//位图垂直分辨率,每米像素数DWORDbiClrUsed;//位图实际使用的颜色表中的颜色数DWORDbiClrImportant;//位图显示过程中重要的颜色数}BITMAPINFOHEADER;该结构占据40个字节。注意:对于BMP文件格式,在处理单色图像和真彩色图像的时候,无论图象数据多么庞大,都不对图象数据进行任何压缩处理,一般情况下,如果位图采用

7、压缩格式,那么16色图像采用RLE4压缩算法,256色图像采用RLE8压缩算法。4.颜色表颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色。RGBQUAD结构的定义如下:typedefstructtagRGBQUAD{BYTErgbBlue;//蓝色的亮度(值范围为0-255)BYTErgbGreen;//绿色的亮度(值范围为0-255)BYTErgbRed;//红色的亮度(值范围为0-255)BYTErgbReserved;//保留,必须为0}RGBQUAD;颜色表中RGBQUAD结构数据的个

8、数由BITMAPINFOHEADER中的biBitCount项来确定,当biBitCount=1,4,8时,分别有2,16,256个颜色表项,当biB

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。