概要

这里只记录BMP格式的图片大小计算,jpg/png这些图片格式因为压缩算法会导致文件大小的不同。仅供参考,非权威。

bmp图片类型

bmp图片先记录这四种,如下图:

1.单色位图:

每个像素最多可以表示2种颜色,只需要使用长度为1的二进制位来表示,因此每个像素占1个位,也就是1/8字节.

一幅图像分辨率:1080 x 1409,单色位图,则其大小为:

(1080 * 1409) /8 = 190215 字节

这种单色位图一般用于oled。

2.16色位图:

每个像素最多可以表示16种颜色(2^4=16),所以只需要长度为4的二进制表示,因此每个像素占1/2字节。

一幅图像分辨率:1080 x 1409,16色位图,则其大小为:

(1080 * 1409) /2 = 760860 字节

3.256色位图:

每个像素最多可以表示256中颜色(2^8=256),所以只需要长度是8的二级制位表示就可以了,因此每个像素占1字节。

一幅图像分辨率:1080 x 1409,256色位图,则其大小为:

1080 * 1409 = 1521720 字节

4.24位位图:

即RGB三原色位图 每个像素占3个byte。

一幅图像分辨率:128 x 64,24位位图,则其大小为:

(128* 64 * 24)/ 8 = 24576 字节

但是为什么我查看图片属性里,显示的大小会比计算出来的要大呢,例如单色位图:

正常计算(128*64)/8 = 1024 字节,实际大小却是1086字节,个人理解是多出来的这些字节用于记录这是bmp图片,属性里的各种属性页,比如属性修改页里的各种参数。剩下的才是像素的实际大小。

后续补充:有位网友在评论里解惑了,这里引用他的话阐述原因,如下:

正常计算(128*64)/8 = 1024 字节,实际大小却是1086字节’ 14(固定)+40(固定)+2*4(索引表)+1024(每行的字节数必须是 4 的倍数)= 1086

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐