将字节数组转换为wpf中的位图对象

时间:2014-11-12 19:52:14

标签: c# winforms bitmap bytearray

我想将字节数组转换为位图。我从捕获卡获取此字节数组。 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;
}

这是因为数组的大小而发生的吗? 任何人都可以提供一种方法来完成这项任务吗? 非常感谢。

谢谢

1 个答案:

答案 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);
    }
}