BMP文件中奇怪的十六进制数字



BMP GRAPHICS文件中有一个奇怪的东西。

我用FULLSHOT 9(屏幕捕捉软件)创建了它们(只需鼠标点击并在屏幕上拖动一个矩形,即可保存为.bmp FILE)。

当我在二进制编辑器中查看该文件时,我可以看到一个像素像预期的那样被使用了很长一段时间。

所以你看到这样的东西:

(编辑器显示每行8个十六进制数)(像素=3个十六进制数字,如"ED ED ED")

0x00002f0<----从文件开始的偏移量(bmp文件的标题部分,在此之后我只期望一个长的像素序列,而不是一些额外的信息)

ED  ED  ED  ED  ED  ED  ED  ED
ED  ED  ED  ED  ED  ED  ED  ED
ED  ED  ED  ED  ED  ED  ED  ED
ED  ED  ED  ED  ED  ED  ED  ED

但突然间,你会看到一块规则的(比如Pixel=3十六进制数字),但不重复的数字

EF  EF  EF
F0  F0  F0
F2  F2  F2
F3  F3  F3
F5  F5  F5
F7  F7  F7
F8  F8  F8
FA  FA  FA
FB  FB  FB
FD  FD  FD

(为了清楚起见,我在每组3个后面加了一行换行符。。。。二进制编辑器在一行中显示8个十六进制数字)

我怀疑这些不是真正的像素,而是一些"信息"然后你经常看到一个奇怪的0独自一人。

00  <----i suspect a terminator of some sort.

然后"信息"部分继续。。。

but now (most of the time) in reverse order
FD  FD  FD
FB  FB  FB
FA  FA  FA ..etc

和停止,以及像素的新的looooong重复。

DC  DC  DC  DC  DC  DC  DC  DC  
DC  DC  DC  DC  DC  DC  DC  DC  
DC  DC  DC  DC  DC  DC  DC  DC  
DC  DC  DC  DC  DC  DC  DC  DC  
DC  DC  DC  DC  DC  DC  DC  DC  

问题:这些"信息"块干扰了我收集所有实际像素。如果我知道它们是什么,我可以告诉程序跳过它们。

问题1:这个"信息"部分的含义是什么?

问题2:零真的是一个终止符吗?

PS我测量了重复出现的零之间的差异,在我创建和检查的不同.bmp文件中,它通常是"位图的"的倍数。

您需要的所有信息都在维基百科的BMP格式中。

0x00002f0<----从文件开始的偏移量(bmp文件的标题部分,在此之后我只期望一个长的像素序列,而不是一些额外的信息)

你没有提到在什么位置找到这个值,但这可能是原始像素数据的开始:

位图文件头

000Ah 4字节——可以找到位图图像数据(像素阵列)的字节的偏移量,即起始地址。

Q1;信息";从外观上看,它只是一个调色板。真彩色位图包含显式调色板不需要,但可能有一个。从理论上讲,这将是一个针对相同图像的优化8位调色板,但我不会指望它。你显示的部分是一个简单的灰色列表。

Q2。这些零可能是DWORD行填充。它们出现在";位图宽度的倍数";,因为在你的图像中的每个实际上占据了一个";位图宽度的倍数";字节——RGB为3次,RGBA为4次。仅在行的末尾插入零,以确保下一行从DWORD边界开始。

相关内容

  • 没有找到相关文章