什么是bmp格式的图片(手机照片转jpg格式)

BMP是Windows下显示图片的基本格式,后缀名为“.bmp”,分为DDB(设备相关位图)和DIB(设备无关位图),现在一般为DIB。BMP文件以文件头和文件体构成,文件头中包括BITMAPFILEHEADER,BITMAPINFOHEADER和若干RGBQUAD组成,文件体是图片内容。
什么是bmp格式的图片(手机照片转jpg格式)

BITMAPFILEHEADER格式:

typedef struct tagBITMAPFILEHEADER

{

WORD bfType;

DWORD bfSize;

WORD bfReserved1;

WORD bfReserved2;

DWORD bfOffBits;

}__attribute__((packed)) BITMAPFILEHEADER;

bfType

Windows文件格式,固定为0x4d42

bfSize

Bmp整个文件大小

bfReserved1

保留字,不考虑, 为0

bfReserved2

保留字,不考虑, 为0

bfOffBits

实际位图的偏移字节数,即前三个部分长度(BMP文件头,BMP信息头及RGBQUAD三部分)之和

BITMAPINFOHEADER格式:

typedef struct tagBITMAPINFOHEADER

{

DWORD biSize;

LONG biWidth;

LONG biHeight;

WORD biPlanes;

WORD biBitCount;

DWORD biCompression;

DWORD biSizeImage;

LONG biXPelsPerMeter;

LONG biYPelsPerMeter;

DWORD biClrUsed;

DWORD biClrImportant;

}__attribute((packed)) BITMAPINFOHEADER;

biSize

指定此结构体的长度,一般为40

biWidth

位图宽 以像素为单位

biHeight

位图高 以像素为单位

biPlanes

表示bmp图片的平面属性,显然显示器只有一个平面,所以恒等于0x0001.

biBitCount

表示bmp图片的颜色位数,即1位图(单色或二值图像),8位图,16位图,24位图,32位图等等。 (对应RGBQUAD个数,当值为1,4,8时,分别有2,16,256个表项,当值为24时,没有颜色表项)

biCompression

表示图片的压缩属性,bmp图片是不压缩的,等于0,所以这里为0x00000000.

biSizeImage

表示bmp图片数据区的大小,当上一个数值biCompression等于0时,这里的值可以省略不填,所以这里等于0x00000000.

biXPelsPerMeter

表示图片X轴每米多少像素,可省略。

biYPelsPerMeter

表示图片Y轴每米多少像素,可省略。

biClrUsed

表示使用了多少个颜色索引表,一般biBitCount属性小于16时才会用到,等于0时表示有2^biBitCount个颜色索引,这里仍等于0x00000000。

biClrImportant

表示有多少个重要的颜色,等于0时表示所有颜色都很重要,这里等于0x00000000。

RGBQUAD格式:

typedef struct tagRGBQUAD

{

BYTE rgbBlue; //该颜色的蓝色分量

BYTE rgbGreen; //该颜色的绿色分量

BYTE rgbRed; //该颜色的红色分量

BYTE rgbReserved; //保留值

}__attribute__((packed)) RGBQUAD

发表评论

登录后才能评论