我想将字节数组转换为位图。我从捕获卡获取此字节数组。 Rgb24数据包括此数组。当我将此数组转换为位图对象时,我得到了"参数无效"错误。
这是我的字节数组
myByteArray{byte[921600]}
MemoryStream mStream = new MemoryStream(myByteArray);
Bitmap bi = new Bitmap(mStream );
和
using (MemoryStream mStream = new MemoryStream(myByteArray))
{
Bitmap bi = (Bitmap)System.Drawing.Image.FromStream(mStream );
}
和
using (MemoryStream mStream = new MemoryStream())
{
mStream.Write(myByteArray, 0, myByteArray.Length);
mStream.Seek(0, SeekOrigin.Begin);
Bitmap bm = new Bitmap(mStream);
return bm;
}
这是因为数组的大小而发生的吗? 任何人都可以提供一种方法来完成这项任务吗? 非常感谢。
谢谢
答案 0 :(得分:1)
如果您的myByteArray
是原始图片数据,则应该有效:
Bitmap bmp = null;
unsafe
{
fixed (byte* p = myByteArray)
{
IntPtr unmanagedPointer = (IntPtr)p;
// Deduced from your buffer size
int width = 640;
int height = 480;
bmp = new Bitmap(width, height, width * 3, System.Drawing.Imaging.PixelFormat.Format24bppRgb, unmanagedPointer);
}
}