BMP位图文件的存储格式2


BMP位图文件的存储格式2
2011年06月18日
   位图数据
  紧跟在彩色表后的是图像数据阵列,图像每一扫描行有连续的字节组成,扫描行由底向上存储,阵列中第一字节为左下角像素,最后一字节为右上角像素。要想处理图像文件就必须知道这些图像文件的构成方式。在常用的图像格式中,以24位真彩色的BMP位图格式比较常用,而且构成比较简单,所以我们就以它作为讲解的对象。
  首先我们找一幅 24 位真彩色的位图用 16 进制编辑器将其打开,查看方式切换到以 HEX 方式查看的话,你们就可以看到类似下面这样的数据了。这其实就是 BMP 文件中的图像数据。这些数据就代表着我们平常看到的图像。
  
  
  
  24 位真彩色的 BMP 图文件是由三个部分组成的:位图文件头、位图信息头、位图阵列三个部分组成的。
  1.1 位图文件头位图文件头就是用来标志这个位图文件一些信息比如:大小、类型等等。共有 14 个字节的信息。
  下面我们就分别对这 14 个字节的信息分别说明一下它们所代表的意义。
  42 4D 为位图的标志。如果转换成 ASCII 码的话就是 BM。
  96 61 02 00 这个双字信息代表着位图文件的总字切数,如果把它转换面十进制的话就是
  ( 00026196 ) H= ( 156054 ) D ,也就是这位图文件的大小是 156054 个字节。
  00 00 00 00 为保留字。
  36 00 00 00 表示位图阵列的起始位置,( 00000036 ) H= ( 54 ) D ,也就是从第 54 个字节起就是这幅图的位图阵列了。
  1.2 位图信息头位图信息头记录着一些关于这幅图的一些基本信息,比如:高度、宽度、分辨率等信息。共占 40 个字节。
  28 00 00 00 表示着位图信息头的长度,( 00000028 ) H= ( 40 ) D ,即位图信息头的长度占 40 个字节。
  04 01 00 00 表示位图的宽度,( 00000104 ) H= ( 260 ) D 表示位图的宽度为 260 个像素。
  C8 00 00 00 表示位图的高度,( 000000C8 ) H= ( 200 ) D 表示位图的高度为 200 个像素。
  01 00 表示位图设备级别。
  18 00 位图的色彩级别,( 0018 ) H= ( 24 ) D ,即表示 24 位真彩色。
  00 00 00 00 表示压缩类型,零表示不压缩。
  00 00 00 00 位图阵列表字节数。
  00 00 00 00 表示水平分辨率。
  00 00 00 00 表示垂直分辨率。
  00 00 00 00 表示位图实际使用的颜色表中的颜色变址。
  00 00 00 00 表示位图显示过程中被认为重要颜色变址数。
  1.3 位图阵列这部分就是这幅图像的主体部分了。其实每幅图像都是由一个一个的点组成的。在位图阵列里就存放着每一个点的颜色信息。每个像素点是由 3 个字节的数据组成的。也就是我们常用到的 RGB 色彩空间每种颜色占一个字节。每个点的颜色都是由蓝色、绿色、红色这个顺序存储的。点的存储顺序是从左到右从下到上,也就是说第一个点是这幅图的第一列的最后一个点(左下角的那个点),之后是它上面的那个点,就这样由下至上直到第一列的第一个点(左上角的那个点),然后是第二列也是从下至上的顺序。直到写完所有的点。

猜你喜欢

转载自qoa681wj.iteye.com/blog/1357724