BMP文件结构
来源:互联网 发布:mac资源库在哪里 编辑:程序博客网 时间:2024/05/18 00:56
BMP图像文件被分成4个部分:
位图文件头(Bitmap File Header)
位图信息头(Bitmap Info Header)
颜色表(Color Map)
位图数据(Data Bits 或 Data Body)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第一部分为位图文件头BITMAPFILEHEADER,是一个结构体类型,长度固定为14字节。
typedef struct tagBITMAPFILEHEADER
{
WORD bfType;//位图文件类型,0x4D42(即字符串“BM”),这里要注意,写错了图片会不显示的,用UE打开是42 4D
DWORD bfSize;//整个文件的大小
WORD bfReserved1;//保留字
WORD bfReserved2;//保留字
DWORD bfOffBits;//文件头到颜色表的大小
}BITMAPFILEHEADER, FAR * LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第二部分为位图信息头BITMAPINFOHEADER,是一个结构体类型的数据结构,长度也是固定的,为40字节(WORD为无符号16位整数,DWORD为无符号32位整数,LONG为32位整数)。
typedef struct tagBITMAPINFOHEADER
{
DWORD biSize;//本结构长度,为40个字节
LONG biWidth;//位图宽度,以像素为单位
LONG biHeight;//位图高度
WORD biPlanes;//目标设备的级别,必须为1
WORD biBitCount;//位深,每个像素所占的位数(bit)
DWORD biCompression;//位图压缩类型,有效的值为BI_RGB(未经压缩)、BI_RLE8、BI_RLE4、BI_BITFILEDS(均为windows定义常量)
DWORD biSizeImage;//实际的位图数据占用的字节数
LONG biXPelsPerMeter;//指定目标设备的水平分辨率单位是像素/米
LONG biYPelsPerMeter;//指定目标设备的垂直分辨率单位是像素/米
DWORD biClrUsed;//位图实际用到的颜色数,如果该值为0,则用到的颜色数为2的biBitCount次幂即2^biBitCount,如24位图2^24
DWORD biClrImportant;//位图显示过程中重要的颜色数,如果该值为零,则认为所有的颜色都是重要的
}BITMAPINFOHEADER, FAR* LPBITMAPINFO, *PBITMAPINFOHEADER;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第三部分为颜色表,是一个RGBQUAD结构的数组,数组的长度由biClrUsed指定(如果该值为0,则由biBitCount指定,即2的biBitCount次幂个元素)。RGBQUAD结构是一个结构体类型,占4个字节。
typedef struct tagRGBQUAD
{
BYTE rgbBule;//该像素索引颜色的蓝色分量
BYTE rgbGreen;//该像素索引颜色的绿色分量
BYTE rgbRed;//该像素索引颜色的红色分量
BYTE rgbReserved;//保留字
}RGBQUAD;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第四部分是位图数据即图像数据,记录了图像的每一个像素值。对于有颜色表的位图,位图数据就是该像素颜色在调色板中的索引值;对于真彩色(即24位图),位图数据就是实际的R、G、B值(三个分量的存储顺序是B、G、R)。
- BMP文件结构
- BMP文件结构分析
- BMP文件结构
- BMP文件结构
- BMP文件结构详解
- BMP文件结构
- BMP文件结构[网摘]
- BMP文件结构详解
- BMP文件结构
- BMP文件结构
- BMP文件结构
- BMP文件结构
- BMP文件结构解析
- BMP文件结构
- BMP文件结构
- .bmp文件结构详解
- BMP文件结构
- BMP文件结构
- 网站被k后需要做的几点
- .net几种打开新页面的方法
- 如何修改TOMCAT的默认主页为自己项目的主页
- 线程中CreateEvent和SetEvent及WaitForSingleObject的用法
- 使用FME实现PGDB转CAD并赋eed属性
- BMP文件结构
- 【读书笔记】操作符
- picturebox加载图片的方法
- HTTP协议详解
- QT 打印中文显示乱码的解决方法
- 字符设备和块设备的区别
- 黑马程序员--c#基础学习笔记2
- senip使用
- 手动安装SUIPack