C#如何写位图数据。 是自下而上还是自上而下?

根据维基百科 :

像素arrays是32位DWORD的块,它逐像素地描述图像。 通常,像素相对于正常图像光栅扫描顺序“倒置”存储,从左下角开始,从左到右,然后从图像的底部到顶部逐行。 1当图像高度值为负时,也可以从上到下存储未压缩的Windows位图。

所以,当我使用这段代码时:

b.Save(outputFilename, ImageFormat.Bmp); 

C#如何实际保存它? 我可以告诉C#以高度值为负值保存它并以自上而下的方式写入吗?

BMP格式的EncoderParameters似乎不支持任何EncoderParameters 。 有关详细信息,请参见此处 。 所以似乎没有办法指定它应该如何存储。 至于了解它如何存储的,试试吧。 制作上半部分为黑色,下半部分为白色并在hex编辑器中查看的图像。

我敢打赌它是’倒置’,因为它是默认值。

不,height属性必须大于0。