位图格式详解

原创 2007年09月18日 12:31:00

位图是最常用的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. 位图数据

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

 

几种位图文件格式

 bmp文件   bmp(bitmap的缩写)文件格式是windows本身的位图文件格式,所谓本身是指windows内部存储位图即采用这种格式。一个.bmp格式的文件通常有.bmp的扩展名,但有一些是...
  • flydeveloper
  • flydeveloper
  • 2004年10月27日 15:01
  • 4496

BMP位图格式详解

位图格式 BMP是bitmap的缩写形式,bitmap顾名思义,就是位图也即Windows位图。它一般由4部分组成:文件头信息块、图像描述信息块、颜色表(在真彩色模式无颜色表)和图像数据区组成。在系统...
  • sunstars2009918
  • sunstars2009918
  • 2011年12月08日 21:40
  • 726

BMP位图格式详解--转载

位图格式 BMP是bitmap的缩写形式,bitmap顾名思义,就是位图也即Windows位图。它一般由4部分组成:文件头信息块、图像描述信息块、颜色表(在真彩色模式无颜色表)和图像数据区组成。在系统...
  • Worm340065034
  • Worm340065034
  • 2016年07月31日 22:52
  • 864

16位位图格式及对16位位图的一点个人总结

原文地址::http://hi.baidu.com/rmgsxpxtzebcdpd/item/2fa5bf4e7f576c0be9350470 http://hi.baidu.com...
  • xqhrs232
  • xqhrs232
  • 2012年09月26日 22:24
  • 2681

完整的位图文件解析

与上次简单的位图加载不同,这次是完整的位图格式解析.暂时没有考虑压缩格式的位图. 下面的内容难免有错误,各位如发现纰漏请及时指出....
  • markl22222
  • markl22222
  • 2011年04月06日 12:01
  • 1396

BMP位图格式详解<一>

位图格式 BMP是bitmap的缩写形式,bitmap顾名思义,就是位图也即Windows位图。它一般由4部分组成:文件头信息块、图像描述信息块、颜色表(在真彩色模式无颜色表)和图像数据区组成。在系统...
  • qq506124204
  • qq506124204
  • 2013年12月03日 23:05
  • 611

BMP位图格式详解<二>

BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广泛使用的图像文件格式。由于它可以不作任何变换地保存图像...
  • qq506124204
  • qq506124204
  • 2013年12月03日 23:06
  • 677

MFC加载位图和图标

从文件加载位图 #pragma once // ZBitmap从文件加载位图资源 class ZBitmap { private: HBITMAP m_hBitmap; CString m_...
  • x82488059
  • x82488059
  • 2013年07月12日 14:57
  • 765

矢量图像格式和位图图像格式的区别

矢量图像用点和线来描述物体,所以文件会比较小,同时也能提供高清晰的画面,适合于直接打印或输出。而位图图像的存储单位是图像上每一点的像素值,因此一般的图像文件都很大,会占用大量的网络带宽。...
  • baohanqing
  • baohanqing
  • 2013年12月30日 20:35
  • 430

位图文件, JPG格式,PNG格式

位图文件(Bitmap), 扩展名可以是.bmp或者.dib。位图文件是Windows标准格式图形文件,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2、4、8、16、24和32位色彩...
  • u010003835
  • u010003835
  • 2015年07月23日 09:49
  • 1402
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:位图格式详解
举报原因:
原因补充:

(最多只允许输入30个字)