位图格式详解

位图是最常用的windows图形格式,通过windows API函数可以直接读取并绘制,不过,有时我们还是需要自己控制,那么,就让我们看看他的格式吧!

位图文件结构表
位图文件位图文件头14 字节
位图信息头40 字节
彩色表(调色板)4N 字节
位图数据x  字节
 

构件详解:

  1. 位图文件头  

    位图文件头包含文件类型、文件大小、存放位置等信息。结构定义如下:

      typedef struct tagBITMAPFILEHEADER
      {
      	UNIT	bfType;
      	DWORD	bfSize;
      	UINT	bfReserved1;
      	UINT	bfReserved2;
      	DWORD	bfOffBits;
      }BITMAPFILEHEADER;
      
    其中:
    bfType    说明文件类型,在windows系统中为BM。
    bfSize    说明文件大小。
    bfReserved1 bfReserved2 保留,设置为0。
    bfOffBits 说明实际图形数据的偏移量。

     

  2. 位图信息头

    位图信息头包含位图的大小、压缩类型、和颜色格式,结构定义如下:

     

      typedef struct tagBITMAPINFOHEADER
      {
      	DWORD	biSize;
      	LONG	biWidth;
      	LONG	biHeight;
      	WORD	biPlanes;
      	WORD	biBitCount;
      	DWORD	biCompression;
      	DWORD	biSizeImage;
      	LONG	biXPelsPerMerer;
      	LONG	biYPelsPerMerer;
      	DWORD	biClrUsed;
      	DWORD	biClrImportant;
      }BITMAPINFOHEADER;
      	
    其中: 
    biSize    说明BITMAPINFOHEADER结构所需字节数,在windows系统中为28h
    biWidth   说明图像宽度
    biHeight  说明图像高度
    biPlanes  为目标设备说明位面数,其值设为1
    biBitCount每个像素的位数,单色位图为1,256色为8,24bit为24。
    biCompression压缩说明,BI_RGB:无压缩,BI_RLE8:8位RLE压缩,BI_RLE4:4位RLE压缩
    biSizeImage说明图像大小,如无压缩,可设为0
    biXPelsPerMeter水平分辨率
    biYPelsPerMeter垂直分辨率
    biClrUsed 位图使用的颜色数
    biImportant重要颜色数目

     

  3. 彩色表

    彩色表包含的元素与位图所具有的颜色数目相同,像素颜色用结构RGBQUAD来表示:

    typedef struct tagRGBQUAD
    {
    	BYTE	rgbBlue;
    	BYTE	rgbGreen;
    	BYTE	rgbRed;
    	BYTE	rgbReserved;
    }RGBQUAD;
    
    其中:
    rgbBlue    指定蓝色强度
    rgbGreen   指定绿色强度
    rgbRed     指定红色强度
    rgbReserved保留,设为0

     

  4. 位图数据

    紧跟在彩色表后的是图像数据震裂,图像每一扫描行有连续的字节组成,扫描行由底向上存储,阵列中第一字节为左下角像素,最后一字节为右上角像素。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值