如何将图片从C#中的字节[]放入图片框中
本文关键字:字节 | 更新日期: 2023-09-27 18:26:42
我有一个字节数组,它包含位图格式的图像二进制数据。如何使用C#中的PictureBox控件显示它?
我浏览了下面列出的几篇文章,但不确定在将字节数组发送到picturebox之前是否需要将其转换为其他内容。我很感激你的帮助。谢谢
如何从位图将图像放入图片框从内存加载图片框图像?
此函数将字节数组转换为位图,位图可用于设置picturebox的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;
using System.IO;
byte[] img = File.ReadAllBytes(openFileDialog1.FileName);
MemoryStream ms = new MemoryStream(img);
pictureBox1.Image = Image.FromStream(ms);
或者你可以直接访问,
pictureBox1.Image=图像.FromFile(openFileDialog1.FileName);
您还可以将pictureBox图像转换为字节数组,如
MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] img = ms.ToArray();
System.Drawing命名空间中的ImageConverter类可以进行转换:
byte[] imageArray = **byte array**
ImageConverter converter = new ImageConverter();
pictureButton.Image = (Image)converter.ConvertFrom(imageArray);
如果你想使用BinaryReader进行转换,那么就这样使用
FileStream fs=新的FileStream(openFileDialog1.FileName、FileMode.Open、FileAccess.Read);
BinaryReader br=新的BinaryReader(fs);
byte[]img=br.ReadBytes((int)fs.Length);
尝试将位图图像转换为jpeg图片和png文件类型的字节数组:
public byte[] UdfConvertPicToByte(Bitmap bitmapImages)
{
using (MemoryStream stream = new MemoryStream())
{
bitmapImages.Compress(Bitmap.CompressFormat.Png, 0, stream);
byte[] bitmapData = stream.ToArray();
bitmap.Compress(Bitmap.CompressFormat.Jpeg, 50, stream);
bitmapData = stream.ToArray();
return bitmapData;
}
}