Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一张图像,想读取特定区域的像素值。
我假设作为该LockBits()方法的第一个参数的矩形在那里允许指定子部分。但是在调试时,我注意到 的值BitmapData.Stride是原始位图宽度的 3 倍,而不是矩形宽度的 3 倍。
LockBits()
BitmapData.Stride
为什么是这样?我是否误解了矩形参数的用途?
它为 GDI+ 提供了一种优化像素数据到内存映射的方法。使用较小的矩形需要较少的内存页。步幅相同,原始位图的步幅。在位图中索引扫描线时,无论矩形的大小如何,都必须使用该值。
它这样做是为了给你一个指向它已经分配的缓冲区的指针,而不是分配一个新的缓冲区并将像素数据复制到它。