256色(8位)位图的步幅是多少?

本文关键字:多少 8位 位图 256色 | 更新日期: 2023-09-27 18:15:08

这里和其他地方有很多关于计算步幅的问题(和答案)。我有一些位图需要读入内存。如果它们是1650万色(24位),一切都很好。然而,我只需要它们是256色(8位),当我试图加载确切的图像时,但颜色深度较低,它爆炸了。我可以接受这个;不过,很明显,一张256色的图像比一张1650万色的图像要小得多。

那么,256色灰度(8位)图像的步幅是多少?

256色(8位)位图的步幅是多少?

对于8位的图像,步幅就是宽度(以像素为单位)。这是四舍五入到4的下一个倍数。例如,如果图像是198像素宽,步长将是200。

8位图像的步长等于图像的宽度。

步幅将取决于使用的颜色格式。要获得步长值,将像素使用的字节数乘以图像的宽度。

实际上并没有定义跨距应该是什么。一般来说,如前所述,它是宽度四舍五入到4的下一个倍数,但实际上并没有强制作为标准。

完全确定的唯一方法是从图像中请求它。没有给出关于如何访问图像数据的信息,但是这样做的标准方法是创建图像的Bitmap对象,并使用bitmap.LockBits函数来获取BitmapData对象。在这种情况下,Stride只是BitmapData对象的一个属性。

如果你已经有了实际的图像数据作为字节数组,你可以用它除以高度,当然