预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1.BMP图像的结构与显示BMP文件是Windows操作系统所推荐和支持的图像文件格式是一种将内存或显示器的图像数据不经过压缩而直接按位存盘的文件格式所以称为位图(bitmap)文件因其文件扩展名为BMP故称为BMP文件格式简称BMP文件。BMP图像文件被分成4个部分:位图文件头(BitmapFileHeader)、位图信息头(BitmapInfoHeader)、颜色表(ColorMap)和位图数据(即图像数据DataBits或DataBody)。为了实现BMP图像的各种处理(如显示平滑锐化等)我们必须清楚BMP图像文件的组成下面将详细介绍一下BMP图像的文件格式。1.1BMP图像的文件格式BMP图像文件由文件头、文件信息头、调色板和图像数据组成。(1)文件头文件头是一个结构长度为14个字节各组成部分如下:WORDbfType//2个字节表示文件类型其值为“BMDWORDbfSize//4个字节表示文件的大小。WORDbfReserved1//2个字节保留其值为0。WORDbfReserved1//2个字节保留其值为0。DWORDbfOffBits//4个字节表示第一个像素的偏移量由文件头可以获得该文件型、小及第一个像素的偏移地址。(2)文件信息头文件信息头也是一个结构体长度为40个字节各组成部分如下:DWORLDbiSize//4个字节存放文件信息头的长度其值为40。LONGbiWidth//4个字节存放位图的宽度。LONGbiHeight//4个字节存放位图的高度。WORDbiplanes//2个字节存放平面的数目其值为1。WORDbiBitcount//两个字节存放每个像素所占的位数其值可以是14824等。DWORDbiCompression//4个字节指定位图是否压缩其值可以是常值BI_RGBBI_RLE8BI_RLE4等。如果没有压缩则为BI_RGB(即0)。DWORDbiSizeImage//4个字节表示位图的实际大小。LONGbiXPelsPerMeter//4个字节指定目标设备的水平分辨率通常不用将其设为0。LONGbiYPelsPerMeter//4个字节指定目标设备的垂直分辨率通常不用将其设为0。DWORDbiClrUsed//4个字节指定图像实际用到的颜色数若使用所有颜色则值为0。DWORDbiClrImportant//4个字节指定图像中重要的颜色数若全部重要则值为0。由文件信息头可以获得有关位图的详细信息位图的实际大小并不等于biWidth和biHeight的乘积。因为在保存位图时要求每一行的字数必须是4的整数倍如果不是则需要补齐。(3)颜色表颜色表实际上是一个RGBQUAD结构的数组数组的长度由biClrUsed指定(如果该值为零则由biBitCount指定即2的biBitCount次幂个元素)。RGBQUAD结构是一个结构体类型占4个字节其定义如下:BYTErgbRed//红色分量BYTErgbGreen//绿色分量BYTErgbBlue//蓝色分量BYTErgbReserved//保留位有些位图需要颜色表;有些位图(如真彩色图)则不需要颜色表颜色表的长度由BITMAPINFOHEADER结构中biBitCount分量决定。对于biBitCount值为1的二值图像每像素占1bit图像中只有两种(如黑白)颜色颜色表也就有21=2个表项整个颜色表的大小为2*sizeof(RGBQUAD)=2*4=8个字节;对于biBitCount值为8的灰度图像每像素占8bit图像中有28=256种颜色颜色表也就有256个表项且每个表项的R、G、B分量相等整个颜色表的大小为256*sizeof(RGBQUAD)=256*4=1024个字节;而对于biBitCount=24的真彩色图像由于每像素3个字节中分别代表了R、G、B三分量的值此时不需要颜色表因此真彩色图的BITMAPINFOHEADER结构后面直接就是位图数据。(4)位图数据紧跟在颜色表之后的是图像数据字节阵列即图像数据记录了图像的每一个像素值。对于有颜色表的位图位图数据就是该像素颜色在调色板中的索引值;对于真彩色图位图数据就是实际的R、G