为什么颠簸存放?

bob*_*obo 15 windows legacy image bmp

为什么BMP图像是颠倒存储和零填充的,因此它们是四字节对齐的?

pez*_*ode 31

以下是Petzold的一句话:

因此,在DIB中,图像的底行是文件的第一行,图像的顶行是文件的最后一行.这被称为自下而上的组织.因为这个组织是违反直觉的,你可能会问为什么这样做.

好吧,这一切都可以追溯到OS/2 Presentation Manager.IBM的某个人决定PM中的所有坐标系统 - 包括窗口,图形和位图的坐标系统 - 应该是一致的.这引发了一场争论:大多数人,包括使用全屏幕文本编程或窗口环境的程序员,都会考虑垂直坐标,这会增加屏幕的下降.然而,硬核计算机图形程序员从一个源于解析几何的数学的角度来看待视频显示.这涉及矩形(或笛卡尔)坐标系,其中增加的垂直坐标在空间中上升.

简而言之,数学家赢了.PM中的所有东西都背负着左下角,包括窗口坐标.这就是DIB如何成为这样的方式.

来源:Charles Petzold,Windows第5版编程,第15章.

  • 有趣的是,他们为DIB保留了这种表示形式,但改变了窗口坐标,重新引入了不一致性. (3认同)