位图(BMP)文件格式(一)

位图文件分四部份数据块

1.位图文件头

BITMAPFILEHEADER

typedef struct tagBITMAPFILEHEADER {
        WORD    bfType;                //文件类型,对于位图格式,其值是'MB'19778, 由于字节存放次序问题的原故,实际为'BM'
        DWORD   bfSize;                //文件总大小
         WORD    bfReserved1;           //保留,置0
        WORD    bfReserved2;           //保留,置0
        DWORD   bfOffBits;             //位图数据偏移长度
} BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;

2.位图信息头

BITMAPINFOHEADER

typedef struct tagBITMAPINFOHEADER{
	DWORD      biSize;               //信息头大小,sizeof(BITMAPINFOHEADER)
	LONG       biWidth;              //图片宽度
	LONG       biHeight;             //图片高度
	WORD       biPlanes;             //面数,置1
	WORD       biBitCount;           //每一位像素占的位数,
	DWORD      biCompression;        //压缩,0比表示不压缩.BI_RGB
	DWORD      biSizeImage;          //图片大小,对24位来说,biWidth * biHeight * 3
         LONG       biXPelsPerMeter;      //分辨率,每米多少个像素
	LONG       biYPelsPerMeter;      //分辨率,每米多少个像素
	DWORD      biClrUsed;            //用到的颜色数
	DWORD      biClrImportant;       //重要的颜色
} BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;

3.调色版

typedef struct tagRGBQUAD {
 BYTE    rgbBlue;
 BYTE    rgbGreen;
 BYTE    rgbRed;
 BYTE    rgbReserved; //保留,置0
} RGBQUAD;
typedef RGBQUAD FAR* LPRGBQUAD;

 

4.位图数据

不同位数的数据格式不同,对24位位图来说,没有调色版,位图信息依次存放是BGR...

***********************************************************************************

另外两个数据结构,

//实际上OS/2的调色版,(1,4,8位)
typedef struct tagRGBTRIPLE  // rgbt 
{ 
      BYTE rgbtBlue ;        // blue level 
      BYTE rgbtGreen ;       // green level 
      BYTE rgbtRed ;         // red level 
} 
RGBTRIPLE ; 

 

//位图信息,(位图信息头 + 调色版)

typedef struct
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值