加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 服务器 > 系统 > 正文

BMP文件格式

发布时间:2021-01-08 06:21:09 所属栏目:系统 来源:网络整理
导读:? BMP(Bitmap-File)图像文件,又叫位图文件,是Windows采用的图形文件格式,在Windows环境下运行的所有图像处理软件都支持BMP图像文件格式。Windows系统内部个图像绘制操作以BMP为基础的。一个BMP文件由四个部分组成。 l? 位图文件头 l? 位图信息段 l?

?

BMP(Bitmap-File)图像文件,又叫位图文件,是Windows采用的图形文件格式,在Windows环境下运行的所有图像处理软件都支持BMP图像文件格式。Windows系统内部个图像绘制操作以BMP为基础的。一个BMP文件由四个部分组成。

  • l? 位图文件头
  • l? 位图信息段
  • l? 调色板
  • l? 位图数据

?

一个BMP文件,可以用代码表示,如下:

typedef struct tagBITMAP_FILE
{
    BITMAPFILEHEADER bitmapheader;
    BITMAPINFOHEADER bitmapinfoheader;
    PALETTEENTRY palette[256];
    UCHAR *buffer;            //UCHAR大小1字节(通BYTE)
}BITMAP_FILE;

BMP文件头:BITMAPFILEHEADER

typedef struct tagBITMAPFILEHEADER{
  WORD bfType;
  DWORD bfSize;
  WORD bfReserved1;
  WORD bfReserved2;
  DWORD bfOffbits;
}

?

位图信息段:BITMAPINFOHEADER

typedef struct tagBITMAPINFOHEADER
{
        DWORD bitSize;
        LONG    bitWidth;
        LONG    biHeight;
        WORD    biPlanes;
        WORD    bitBitCount;
        DWORD    bitCompression;
        DWORD    bitSizeImage;
        LONG    bitXPelsPerMeter;
        LONG    bitYPelsPerMeter;
        DWORD    biClrUsed;
        DWORD    biClrImporant;
}BITMAPINFOHEADER;

调色板

  1. 对于200*200像素,颜色数为16的彩色图。每个像素用R、G、B三个分量表示,每个分量有256个级别,用8位,也就是一个字节,所有每个像素就要用到3个字节。整个图像就要用200*200*3的大小内存来存储。

如果16色图在途中最多有16种颜色。可以采用一个表,表中每一行记录一种颜色的R、G、B值。这样当我们表示一个色素的颜色时,只需要指出该颜色在第几行,即该颜色的索引值即可。比如如果表第0行表示255,0,0(红色),那么当某个色素为红色时,只需要标注0即可。

16种颜色用4bit表示,所以一个像素只需要用到半个字节。整个图像只用200*200*0.5+3*16个字节。

?

这张R、G、B表就是调色板,另一种叫法是颜色查找表。

typedef struct tagPALETTENTRY
{
        BYTE peRed;
        BYTE peFreen;
        BYTE peBlue;
        BYTE peFlags;
}PALETTEENTRY;

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读