我正在尝试从WPF BitmapSource对象中获取像素数据。据我所知,这可以通过调用它的CopyPixels方法来实现。这个方法需要一个stride参数,我不知道如何获得它。据我所知,stride是在读取或复制过程中步进数组时使用的值。对于任何BitmapSource,合适的步长值是多少?
发布于 2010-10-07 21:05:55
您可以使用stride = pixel_size * image_width值。例如,对于宽度为100像素的RGBA位图,步幅= 400。
某些应用程序可能需要特殊的线条对齐。例如,Windows GDI位图需要32位行对齐。在这种情况下,对于宽度为33的RGB位图,应将步长值33*3=99更改为100,以便在目标数组中具有32位的行对齐。
通常,您应该知道目标数组要求。在中没有特殊要求,请使用默认的pixel_size * image_width。
发布于 2019-02-14 00:08:12
var stride = ((bitmapSource.PixelWidth * bitmapSource.Format.BitsPerPixel + 31) / 32) * 4;或
var stride = ((bitmapSource.PixelWidth * bitmapSource.Format.BitsPerPixel + 31) >> 5) << 2;https://stackoverflow.com/questions/3881857
复制相似问题