我有一张图片,想要读取特定区域的像素值。
我假设作为LockBits()
方法的第一个参数的矩形允许指定子部分。调试时,我注意到BitmapData.Stride
的值是原始位图宽度的3倍,而不是矩形宽度的3倍。
这是为什么?我误解了矩形参数的用途吗?
答案 0 :(得分:2)
它为GDI +提供了一种优化像素数据到内存映射的方法。使用较小的矩形需要较少的内存页。步幅是相同的,原始位图的步幅。无论矩形的大小如何,在索引位图中的扫描线时都必须使用该值。
答案 1 :(得分:0)
这样做可以为你提供一个指向已经分配的缓冲区的指针,而不是分配一个新的并将像素数据复制到它。