龙空技术网

解读常见图像格式

云之梦歌 56

前言:

现时同学们对“bmp位图大小计算方法”大致比较看重,小伙伴们都想要剖析一些“bmp位图大小计算方法”的相关资讯。那么小编也在网上汇集了一些关于“bmp位图大小计算方法””的相关内容,希望大家能喜欢,大家一起来了解一下吧!

一、图像处理

多数图像的存储格式一般都为字节型(char), 每种图像格式包括很多信息,其中主要还是颜色的存储RGB和RGBA。其中图像存储安照矩阵的方式,如下图:

如果有A通道说明这个图片有透明效果, R、G、B,每个数据使用一字节来表示,所以图(1) 中每个像素大小为 3×8=24位,而图(2)中每个像素大小是 4×8=32位。

图像是二维数据,而在内存中只能一维存储。

二维转一维有2种常用的方式: 按像素 "行排列" 从上往下或从下往上。

不通的图形库中每个像素点中RGBA的排序顺序可能不一样, 上面说过一般有RGB或RGBA 四个分量,

那么在内存中RGB就有多种情况,跟排列组合类似, 不过一般只会有 RGB、BGR、RGBA、BGRA这几种排列,

绝大数图形库或缓解是 BGRBGRA排列。

二、图像压缩

如果图像原始格式直接存储到文件中会很大, 比如一个 8000×8000 24位图,所占文件大小为 8000×8000×3字节=183.1MB,占用空间非常高。

如果使用zip或rar之类的通用算法压缩图像数据, 得到的压缩比不会太高,因为压缩算法没有针对图像数据结构进行特殊处理。

于是就有了jpeg、png等格式,同样是图像压缩算法 jpeg和png也有不同的使用场景。

以下图是图像在内存中的存储方式:

jpeg、png文件相对于图像,就相当于 zip、rar 格式相对于普通文件(用zip、rar 格式对普通文件进行压缩)。

另外bmp是无压缩的图像格式,在这里以Bmp为例,介绍一下Bmp格式的图片存储格式。

三、bmp格式

bmp格式没有压缩像素格式,存储在文件中时先有文件头、再图像头、后面就都是像素数据了,上下颠倒存储。用windows自带的mspaint工具保存bmp格式时,可以发现有四种bmp可供选择:

单色: 一个像素只占一位,要么是0,要么是1,所以只能存储黑白信息

16色位图: 一个像素4位,有16种颜色可选

256色位图: 一个像素8位,有256种颜色可选

24位位图: 就是图(1)所示的位图,颜色可有2^24种可选,对于人眼来说完全足够了。

以下bmp 文件头和图片格式头的结构:

标签: #bmp位图大小计算方法