1

我有一张图像,想读取特定区域的像素值。

我假设作为该LockBits()方法的第一个参数的矩形在那里允许指定子部分。但是在调试时,我注意到 的值BitmapData.Stride是原始位图宽度的 3 倍,而不是矩形宽度的 3 倍。

为什么是这样?我是否误解了矩形参数的用途?

4

2 回答 2

2

它为 GDI+ 提供了一种优化像素数据到内存映射的方法。使用较小的矩形需要较少的内存页。步幅相同,原始位图的步幅。在位图中索引扫描线时,无论矩形的大小如何,都必须使用该值。

于 2012-04-05T16:18:21.357 回答
0

它这样做是为了给你一个指向它已经分配的缓冲区的指针,而不是分配一个新的缓冲区并将像素数据复制到它。

于 2012-04-13T22:11:38.893 回答