BMP图片存储

图像大小

文件头+图像(+调色板)

色图像

包括:单色图像、16色图像、256色图像

文件头大小(字节):40+14=54
图像:色图像存储采用调色板方式存储,将一张图片试做一个二维矩阵,那么每一个点的值,存的是调色板表的索引值,每一个值对应调色板里的一种颜色,以此来表示图像中点的颜色。
调色板,一般多少色的图像,调色板就有多少种颜色,每种颜色存储需要4个字节,那么调色板的大小就是 颜色数x4 个字节。那么存储这么多种的颜色,就需要对应个数的二进制位。如:16色图像,我们要想在矩阵中表示出他的颜色,就需要24,也就是4位来存储,记录所有的这16种颜色的索引;又如256色图像,我们就需要28,也就是8位来表示出所有的256种颜色对应的索引值。
那么,有了以上的信息,我们就做一道题尝试计算一下。

假定windows下的一 幅 256色 bmp图像的分辨率大小为135*135,试计算图像的存储大小(包含文件头、文件信息头和调色板) ,并给出详细的计算过程。

头文件占54个字节,调色板大小占256*4个字节
然后对于图像的存储,在Windows下,像素的最小存储单位是一个字节,如果的最后位数不足一个字节(8位),则需要补齐一个字节。
如一个135x135的矩阵,它的行像素个数为135,135/8=16.875,所以,在存储的时候就需要向上取整为17,补齐这一个完整的字节。而在图像存储时,那么对于256色的存储,所需要的空间是8位,那么就是 17 x 8 x 135 个字节。注意,补齐原则只关注行元素。见下图,行135 与 行136 最终图像大小相同,可证明列无需实行补齐原则。
BMP图片存储

上一篇:python系列教程135——复杂的赋值语句


下一篇:引起索引失效的情况