我现在有个BYTE数组长度为9000
里面存放了100*30*3的纯RGB数据,现在要把他转成Bitmap型,刚看了下,Bitmap.FromStream是用不了了,是不是非得自己写文件头?还是有没有别的函数?

解决方案 »

  1.   

    有个比较原始的方法,
    申请一个新图像,大小100 * 30再使用BitmapData把图像锁入内存中然后直接把数据复制到该内存上。
      

  2.   


      byte[] bytelist;   
      MemoryStream ms = new MemoryStream(bytelist);   
      Bitmap bm = (Bitmap)Image.FromStream(ms);
      

  3.   

      byte[] _Value =new byte[9000];
                Bitmap _NewBitmap = new Bitmap(100, 30, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
                System.Drawing.Imaging.BitmapData _Data = _NewBitmap.LockBits(new Rectangle(0, 0, _NewBitmap.Width, _NewBitmap.Height), System.Drawing.Imaging.ImageLockMode.ReadWrite, _NewBitmap.PixelFormat);
                Marshal.Copy(_Value, 0, _Data.Scan0, _Value.Length);
                _NewBitmap.UnlockBits(_Data);大概是这个样子
      

  4.   

    谢谢4楼zgke大哥,爱死你啦,哈哈。