如何将图像放在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);