BMP文件格式分析

位图定义

计算机能以位图和矢量图格式显示图像

Bitmap(位图)

  • 图像又称点阵图或光栅图,它使用像素(Pixel)的一格一格的小点来描述图像,计算机屏幕就是一张包含大量像素点的网格,当把位图放大时,每一个像素小点看上去就像是一个个马赛克色块

Vector(矢量图)

  • 使用直线和曲线来描述图形,这些图形的元素是一些点、线、矩形、多边形、圆和弧线等等,它们都是通过数学公式计算获得的
  • 位图和矢量图最简单的区别就是:矢量图可以无限放大,而且不会失真,而位图则不能
  • 像Photoshop(PS)这样主要用于处理位图的软件被称之为图像处理软件;专门处理矢量图的软件被称之为图形设计软件,例如Adobe Illustrator,CorelDRAW,Flash MX等

BMP位图文件

常见的图像文件格式有:BMP、JPG(JPEG)、GIF等

BMP图像文件(Bitmap-File)格式是Windows采用的图像文件存储格式,在Windows环境下运行的所有图像处理软件都支持这种格式,Windows 3.0以后的BMP文件都是指设备无关位图(DIB,device-independent bitmap),BMP位图文件默认的文件扩展名是.BMP,有时也会以.DIB.RLE作扩展名

例图,512 x 512

在这里插入图片描述

BMP文件结构

  1. 位图文件头(bitmap-file header)
  2. 位图信息头(bitmap-informationheader)
  3. 颜色表(color table)
  4. 颜色点阵数据(bits data)

需要注意的是,24位真彩色位图没有颜色表只有位图文件头、位图信息头和颜色点阵数据这三部分

如果位深度是24的话,就说明图片是24位真彩色

在这里插入图片描述

通过010 editor可以看到这个文件的全部数据

在这里插入图片描述

BITMAPFILEHEADER(位图文件头)

位图文件头分4部分,共14字节

在这里插入图片描述

在Windows中数据是反的,如果一段数据为50 1A 25 3C,则为0x3C251A50,因此bfSize的数据为36 00 0C 00,其实是0x000C0036,也就是0xC0036

在这里插入图片描述

BITMAPINFOHEADER(2位图信息头)

位图信息头共40字节

在这里插入图片描述

真彩色位图主要关心的是biWidthbiHeight这两个数值,两个数值体现的是图像的尺寸,biSize、biPlanes、biBitCount这几个数值是固定的

在这里插入图片描述

4颜色点阵数据

  • 位图全部的像素,是按照自下向上,自左向右的顺序排列的
  • RGB数据也是倒着念的,原始数据是按B、G、R的顺序排列的

Photoshop和Windows的BMP文件比较

Windows的BMP文件最后少了两个0字节,没有整体补位,bfSize(文件大小),biSizeImage(全部像素大小)也相应地减去2

行补位的公式为:widthBytes = (widthbiBitCount+31)/324
参数说明:

  • Width:位图的实际宽度
  • biBitCount:每个像素的位数
  • 1-黑白图,4-16色,8-256色,24-真彩色
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值