BMP

 

BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。按照微软的定义,在开始的文件头由14个字节组成:

tagBITMAPFILEHEADER= packed record

bfType:WORD; // 位图文件的类型,必须为BM

bfSize:DWORD; // 位图文件的大小,以字节为单位

bfReserved1:WORD; // 位图文件保留字,必须为0

bfReserved2:WORD; // 位图文件保留字,必须为0

bfOffB its:DWORD; // 位图数据的起始位置,以相对于位图

// 文件头的偏移量表示,以字节为单位

End;

紧接着上一记录的是位图信息头tagBITMAPINFOHEADER,BMP位图信息头数据用于说明位图的尺寸等信息。这个信息头就是上文说的TBitmapInfoHeader,它的长度固定为40字节。

tagBITMAPINFOHEADER= packed record

biSize:DWORD; // 本结构所占用字节数

biWidth:LONGINT // 位图的宽度,以像素为单位

biHeight; :LONGINT // 位图的高度,以像素为单位

biPlanes; :WORD // 目标设备的级别,必须为1

biBitCount :WORD // 每个像素所需的位数,必须是1(双色),

// 4(16色),8(256色)或24(真彩色)之一

biCompression :DWORD; // 位图压缩类型,必须是 0(不压缩),

// 1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一

biSizeImage :DWORD; // 位图的大小,以字节为单位

biXPelsPerMeter:LONGINT; // 位图水平分辨率,每米像素数

biYPelsPerMeter:LONGINT; // 位图垂直分辨率,每米像素数

biClrUsed:DWORD;// 位图实际使用的颜色表中的颜色数

biClrImportant:DWORD;// 位图显示过程中重要的颜色数

End;

紧接着就是颜色表,用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色。RGBQUAD结构的定义如下:

tagRGBQUAD = packed record

rgbBlue:BYTE;// 蓝色的亮度(值范围为0-255)

rgbGreen:BYTE; // 绿色的亮度(值范围为0-255)

rgbRed:BYTE; // 红色的亮度(值范围为0-255)

rgbReserved:BYTE;// 保留,必须为0

end;

颜色表中RGBQUAD结构数据的个数有biBitCount来确定:

当biBitCount=1,4,8时,分别有2,16,256个表项;

当biBitCount=24时,没有颜色表项。

位图信息头和颜色表组成位图信息,BITMAPINFO结构定义如下:

tagBITMAPINFO = packed record

bmiHeader :BITMAPINFOHEADER; // 位图信息头

bmiColors[0..0] :RGBQUAD; // 颜色表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值