BMP文件格式小和大端之间的矛盾

时间:2013-06-14 17:11:02

标签: language-agnostic endianness bmp

我有两个BMP文件,一个Windows屏幕截图和一个使用GIMP生成的linux文件。 我注意到标题中的所有数据都以大端格式存储。

DIB headerbiWidthbiHeightbiPlanes字段都是big endian,也是“BMP文件的大小(以字节为单位)”(第二个字段)来自Bitmap File Header)是一个大端,与wikipedia相矛盾,它说:“所有整数值都以小端格式存储”

我研究了GIMP的源代码,发现了一个将数据从小端转换为大端的函数: https://git.gnome.org/browse/gimp/tree/plug-ins/file-bmp/bmp-write.c#n81

FromL函数用于在位图文件头中以字节为单位写入文件大小: https://git.gnome.org/browse/gimp/tree/plug-ins/file-bmp/bmp-write.c#n431

所以一切都在大端,问题是为什么?

为什么人们想要在写入时转换为大端,并在读取时从大端转换为小端,何时可以简单地以小端读取和写入数据?

我错过了什么?

0 个答案:

没有答案