首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解.bmp文件

理解.bmp文件
EN

Stack Overflow用户
提问于 2015-11-02 17:46:10
回答 1查看 2.9K关注 0票数 0

我有一个.bmp文件

我有点理解,但有点不明白。我知道前14个字节是我的Bitmapfileheader。我还进一步了解到,我的Bitmapinfoheader也包含关于位图的信息,并且大约有40个字节大(在版本3中)。

我不明白的是,这些信息是如何储存在那里的。我有这样的形象:

为什么所有的颜色信息都存储在"FF“中?我知道"00“是”垃圾拜特斯“。我不明白的是为什么“FF”里有所有的东西?!

此外,我不明白什么类型的“编码”,即? 42 4D等于做"BM“。那是什么?我怎样才能把我在那里看到的东西翻译成颜色、字母或数字?!

在这种情况下我能读到的是:

Bitmapfileheader

前两个字节。BM如果是.bmp文件: 42 4D = BM (但是42 4D转换为BM)

接下来的4个字节:位图的大小。英航01 00。不知道应该有多大尺寸。

接下来的4位:保留的东西。

接下来的4位字节:偏移(不太明白)

Bitmapinfoheader

接下来的4个字节:位图信息头的大小。六点到了。

接下来的4个字节:.bmp的宽度。0:00。我知道既然我创建了这个文件,那一定是10 be。

接下来的4个字节:.bmp的高度。0:00。我知道既然我创建了这个文件,那一定是10 be。

下一个2字节:来自另一种文件格式的东西。

下两个拜特斯:颜色深度。一千八点。我以为只有1,2,4,8,16,24,32?

EN

回答 1

Stack Overflow用户

发布于 2016-10-06 18:39:25

前两个字节的信息,你看到的"42,4D“,是我们所谓的魔术数字。它们是文件的签名,42d是二进制01000010 01001101的十六进制表示法。每个文件都有一个,.jpg,.gif。你就明白了。

这是一个图像,说明一个BMP完整的头54个字节(24位BMP).

BMP头

BMP的总大小由头+ BMP.width x BMP.height *3的大小计算(红色1字节,绿色1字节,蓝色1字节-如果每个通道有8位信息)+填充(如果存在)。

您所指的垃圾字节是填充,如果每个scanline(行)的大小不是4的倍数,则需要它们。

白色的十六进制符号如果ffffff,是第两个红色,绿色和蓝色。在十进制表示法中,每个通道的值为255,因为2^8(8位) -1 = 255。

希望这为你清除一点(无意中的双关语)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33483708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档