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

时间:2012-03-06 01:54:59

标签: c# .net picturebox bitmapimage

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

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

How to put image in a picture box from Bitmap Load Picturebox Image From Memory?

7 个答案:

答案 0 :(得分:34)

此函数将字节数组转换为Bitmap,可用于设置图片框的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

答案 1 :(得分:6)

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

答案 2 :(得分:2)

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

rotate

答案 3 :(得分:1)

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);

答案 4 :(得分:1)

尝试将位图图像转换为 jpeg 图片和 png 文件类型的字节数组:

"cpp": "cd $dir && g++ --std=c++17 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

如果你想使用BinaryReader进行转换,那就像这样使用

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

BinaryReader br = new BinaryReader(fs);

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