0

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

我使用 FULLSHOT 9(屏幕捕获软件)创建它们(只需鼠标单击并在屏幕上拖动一个矩形并保存为 .bmp 文件)。

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

所以你会看到这样的东西:

(编辑器每行显示 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 hex numbers)但不是重复的数字

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文件中“位图的”的倍数。

4

1 回答 1

0

您需要的所有信息都在BMP 格式的 Wikipedia 上

0x00002f0 <---- 与文件开头的一些偏移量(bmp 文件的头文件部分,之后我只期望一长串像素,而不是一些额外的信息)

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

位图文件头

..

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

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

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

于 2013-08-28T22:07:19.053 回答