如何将图像放在C#中字节的图片框中

我有一个字节数组,其中包含位图格式的图像二进制数据。 如何在C#中使用PictureBox控件显示它?

我通过下面列出的几个post,但不确定我是否需要将字节数组转换为其他内容,然后再将其发送到图片框。 我很感激你的帮助。 谢谢!

如何将图像放在图片框中从位图 加载Picturebox图像从内存?

此函数将字节数组转换为Bitmap,可用于设置Image框的Image属性。

 public static Bitmap ByteToImage(byte[] blob) { MemoryStream mStream = new MemoryStream(); byte[] pData = blob; mStream.Write(pData, 0, Convert.ToInt32(pData.Length)); Bitmap bm = new Bitmap(mStream, false); mStream.Dispose(); return bm; } 

样品用法:

 pictureBox.Image = ByteToImage(byteArr); // byteArr holds byte array value 
 byte[] imageSource = **byte array**; Bitmap image; using (MemoryStream stream = new MemoryStream(imageSource)) { image = new Bitmap(stream); } pictureBox.Image = image; 

你也可以像这样将pictureBox图像转换为字节数组,

 MemoryStream ms = new MemoryStream(); pictureBox1.Image.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg); byte[] img = ms.ToArray(); 
 using System.IO; byte[] img = File.ReadAllBytes(openFileDialog1.FileName); MemoryStream ms = new MemoryStream(img); pictureBox1.Image = Image.FromStream(ms); 

或者您可以直接访问,

pictureBox1.Image = Image.FromFile(openFileDialog1.FileName);

System.Drawing命名空间中的ImageConverter类可以进行转换:

 byte[] imageArray = **byte array** ImageConverter converter = new ImageConverter(); pictureButton.Image = (Image)converter.ConvertFrom(imageArray); 

如果你想使用BinaryReader转换然后像这样使用,

FileStream fs = new FileStream(openFileDialog1.FileName,FileMode.Open,FileAccess.Read);

BinaryReader br = new BinaryReader(fs);

byte [] img = br.ReadBytes((int)fs.Length);