C# 256色(8位)位图的跨距是多少?
关于计算步幅,这里和其他地方都有很多问题(和答案)。我有一些位图需要读入内存。如果颜色为1650万色(24位),则一切正常。然而,我只需要它们是256色(8位),当我试图加载到精确的图像中,但颜色深度较低时,它就崩溃了。我可以接受这个;除此之外,很明显,256色图像比1650万色图像小得多C# 256色(8位)位图的跨距是多少?,c#,bitmapimage,stride,256color,C#,Bitmapimage,Stride,256color,关于计算步幅,这里和其他地方都有很多问题(和答案)。我有一些位图需要读入内存。如果颜色为1650万色(24位),则一切正常。然而,我只需要它们是256色(8位),当我试图加载到精确的图像中,但颜色深度较低时,它就崩溃了。我可以接受这个;除此之外,很明显,256色图像比1650万色图像小得多 那么,256色灰度(8位)图像的步幅是多少?8位图像的步幅等于图像的宽度 步幅将取决于使用的颜色格式。要获得步长值,请将像素使用的字节数乘以图像的宽度。对于8位图像,步长仅为像素宽度。这四舍五入到4的下一个倍
那么,256色灰度(8位)图像的步幅是多少?8位图像的步幅等于图像的宽度
步幅将取决于使用的颜色格式。要获得步长值,请将像素使用的字节数乘以图像的宽度。对于8位图像,步长仅为像素宽度。这四舍五入到4的下一个倍数。例如,如果图像宽度为198像素,则步幅为200。实际上没有定义步幅应该是什么。一般来说,如前所述,它是四舍五入到下一个四的倍数的宽度,但实际上并没有任何标准要求它 唯一可以完全确定的方法就是从图像中请求它。没有提供有关如何访问图像数据的信息,但标准方法是创建图像的
位图
对象,并使用位图.LockBits
函数获取位图数据
对象。在这种情况下,Stride
只是该BitmapData
对象的一个属性
如果您已经以字节数组的形式获得了实际的图像数据,那么您当然可以将其除以高度。嗯,这显然是不正确的。步幅不能假定为图像宽度。