我有一个字节数组,其中包含位图格式的图像二进制数据。如何使用C#中的PictureBox控件显示它?
我通过下面列出的几个帖子,但不确定我是否需要将字节数组转换为其他内容,然后再将其发送到图片框。我很感激你的帮助。谢谢!
How to put image in a picture box from Bitmap Load Picturebox Image From Memory?
答案 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);