将整个位图数据复制到字节数组



我想将整个位图数据复制到字节数组中 我可以知道,我该怎么做? 我使用了下面的代码片段

bmpdata = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly,bitmap.PixelFormat);
int numbytes = bmpdata.Stride * bitmap.Height;
byte[] bytedata = new byte[numbytes];
IntPtr ptr = bmpdata.Scan0;
Marshal.Copy(ptr, bytedata, 0, numbytes);
return bytedata; 

但是复制到字节数组中的值始终为零

这会工作吗?

总的来说,您正在正确复制,并且 MSDN 上有一个关于此类复制的示例代码片段。

您通常应该逐行复制,因为不必连续布置行。

如果要复制的所有数据均为零,则源bitmap对象可能首先不包含任何有效数据,仅包含黑色。

最新更新