位图格式详解

原创 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 file format)

BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广泛使用的图像文件格式。由于它可以不作任何变换地保存图像...
  • wc0077
  • wc0077
  • 2011年09月26日 15:48
  • 420

BMP位图格式详解<二>--转载

转自:http://www.cnblogs.com/xiehy/archive/2011/06/07/2074405.html BMP文件格式,又称为Bitmap(位图)或是DIB(Device...

嵌入式中如何统一多幅位图的调色板并生成C格式数据详解

在嵌入式开发当中,我们经常会需要显示公司logo,或者操作界面的图标,也自然会用到图像转换工具,比如uC-GUI-BitmapConvert, 下载地址连接页面 ,我们可以用它进行输入一幅位图,然后输...

源码-多格式位图转化+简易画图

  • 2015年09月09日 11:09
  • 1.08MB
  • 下载

BMP位图读写的格式与方法

  • 2011年06月13日 01:54
  • 58KB
  • 下载

位图BITMAP格式分析(2)

前一段时间开发一个编码filter ,过程中出现了回放图像上下倒置的现象,百思不得其解,只好在程序中加了一段将数据倒置的代码,今天看梁老(呵呵,不知多老,反正是前辈拉)的《编程高手箴言》,里面有一段讲...

用C++开发位图格式图像应用程序

  • 2007年05月03日 13:02
  • 37KB
  • 下载

由BMP位图到各种图片格式的来源

这篇博客的内容是记录好久前所学习的知识的。 说下BMP的来源 BMP,也可以成为位图,位图所使用的颜色空间是RGB的,就是使用三原色来表示所有的颜色。 计算机无法真实的显示现实世界里面的所有颜色...
  • oldmtn
  • oldmtn
  • 2015年08月04日 10:01
  • 1044
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:位图格式详解
举报原因:
原因补充:

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