当前位置:  开发笔记 > 编程语言 > 正文

如何从二维字节数组创建图像?

如何解决《如何从二维字节数组创建图像?》经验,为你挑选了1个好方法。

经过漫长的过程,在我的项目中,我从红外摄像机获得了一个二维字节数组.

字节数组中包含图像...

如何将该字节数组转换为C#中的图像

我知道

MemoryStream ms = new MemoryStream(byteArray);
System.drawing.Image im = Image.FromStream(ms);

我们可以传递1维数组并将其转换为图像..

如果我将2维数组作为单维数组传递..它显示错误..

如何纠正它.. ???? 或者如何将2维字节数组转换为图像... ???

谢谢!!



1> Jon Skeet..:

如果它是一个矩形数组(即a byte[,])而不是锯齿状数组(byte[][])那么你可以用一些不安全的代码来完成它.

看看我的并行Mandelbrot集生成代码 - 只有底部位很有趣,它从一个调色板和一个数据块构造一个Bitmap:

byte[] data = query.ToArray();

unsafe
{
    fixed (byte* ptr = data)
    {
        IntPtr scan0 = new IntPtr(ptr);
        Bitmap bitmap = new Bitmap(ImageWidth, ImageHeight, // Image size
                                   ImageWidth, // Scan size
                                   PixelFormat.Format8bppIndexed, scan0);
        ColorPalette palette = bitmap.Palette;
        palette.Entries[0] = Color.Black;
        for (int i=1; i < 256; i++)
        {
            palette.Entries[i] = Color.FromArgb((i*7)%256, (i*7)%256, 255);
        }
        bitmap.Palette = palette;
        // Stuff
    }
}

我不知道你是否可以在构造位图后取消固定数组 - 如果我将它用于生产代码,我会更仔细地看一下.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有