1.对于byte数组带有图像信息的,可以直接转
byte[] byts=new byte[1000000];
var bitMap = Image.FromStream(new MemoryStream(byts));
2.对于byte数组不带有图像信息的,则需要指定图像信息后转成Bitmap
public static Bitmap buildBMP(int width, int height, byte[] imgBytes)
{
Bitmap bmp = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height),
ImageLockMode.WriteOnly, bmp.PixelFormat);
//用Marshal的Copy方法,将刚才得到的内存字节数组复制到BitmapData中
System.Runtime.InteropServices.Marshal.Copy(imgBytes, 0, bmpData.Scan0, imgBytes.Length);
//解锁内存区域
bmp.UnlockBits(bmpData);
return bmp;
}
该文介绍了如何处理包含和不包含图像信息的byte数组以创建Bitmap。对于带有图像信息的数组,可以直接使用Image.FromStream方法;而对于不带信息的数组,需先创建Bitmap对象并指定像素格式,然后利用Marshal.Copy将字节数组复制到BitmapData中。
7248

被折叠的 条评论
为什么被折叠?



