【发布时间】:2020-05-20 11:11:58
【问题描述】:
我想将整个位图数据复制到 ByteArray 我知道,我该怎么做? 我使用了下面的 sn-p 代码
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;
但复制到 byteArray 中的值始终为零
这行得通吗?
【问题讨论】:
-
PixelFormat 是 24bppRgb,是的,在这个 Image 案例中的步幅是积极的,我试图让它首先适用于这个案例,但我猜还是有一个问题
-
没什么好说的,除非您提供有关所用图像的更多详细信息。你可以附上它。但是,一件非常重要的事情:字节数据是不够的。您还需要返回步幅才能正确处理数据。
-
旁注:在完成
bmpdata对象后,您应该真正执行UnlockBits。
标签: c# image-processing ms-media-foundation