繁体   English   中英

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

[英]Convert Byte Array to Bitmap Object in wpf

我想将字节数组转换为位图。 我从采集卡上得到了这个字节数组。 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;
}

是否因为数组的大小而发生? 任何人都可以提供一种方法来执行此任务吗? 将不胜感激。

谢谢

如果您的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);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM