您的位置:首页 > 其它

数字图像的基本文件格式

2010-05-21 16:36 281 查看
每一种图像文件均有一个文件头,在文件头之后才是图像数据。

文件头的包括:文件类型,文件制作者,制作时间,版本号,文件大小等内容。

常用的图像文件有:BMP,JPEG,PCX,TIEF,GIF等类型的图像文件。

BMP图像的文件格式

位图文件头:

typedef struct tagBITMAPFILEHEADER

{

WORD bfType; 文件类型,位图必须是0x424D,即字符串“BM”

DWORD bfSize; 指定文件大小,包括这14个字节的文件头

WORD bfReserved1; 保留字,不用考虑

WORD bfReserved2; 保留字,不用考虑

DWORD bfOffBits; 从文件头到实际位图数据的偏移字节数

} BITMAPFILEHEAER;

位图信息头:

typedef struct tagBITMAPINFOHEADER

{

DWORD biSize; 本结构的长度,为40

LONG biWidth; 图像的宽度,单位是像素

LONG biHeight; 图像的宽度,单位是像素

WORD biPlanes; 位平面数,必须是1

WORD biBitCount; 指定颜色位数,即用多少位来表示一个像素

DWORD biCompression; 指定是否压缩,有效值为

BI_RGB,BI_RLE8,BI_RLE4,BI_BITFIELDS

DWORD biSizeImage; 指定位图数据所占的字节数

LONG biXPelsPerMeter; 目标设备水平分辨率,单位为像素/米

LONG biYPelsPerMeter; 目标设备垂直分辨率,单位为像素/米

DWORD biClrUsed; 实际使用的颜色数,若为0,则使用的颜色数为2的biBitCount次方

DWORD biClrImportant; 图像中重要的颜色数,若为0,则所有颜色都是重要的

}BITMAPINFOHEADER;

调色板:

对于16位,24位的真彩色图,BITMAPINFOHEADER后直接跟的就是图像数据。

调色板实际上是一个数组,共有biClrUsed个元素(如果biClrUsed为0则就有2的biBitCount次方个元素)。数组中每个元素的类型是一个RGBQUAD结构,占4个字节。

typedef struct tagRGBQUAD

{

BYTE rgbBlue;

BYTE rgbGreen;

BYTE rgbRed;

BYTE rgbReserved;

}RGBQUAD;

注意:位图中每一行的字节数必须是4的整数倍,如果不是则需要补齐。

BMP文件的数据是按从下到上,从左到右的顺序进行存放。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: