Как поместить изображение в поле изображения из байта [] в С#
У меня есть байтовый массив, который содержит двоичные данные изображения в растровом формате. Как отобразить его с помощью элемента управления PictureBox в С#?
Я перешел через пару сообщений, перечисленных ниже, но не уверен, что мне нужно преобразовать массив байтов во что-то еще, прежде чем отправлять его на картинный ящик. Буду признателен за вашу помощь. Спасибо!
Как поместить изображение в окно с растровым изображением
Загрузить изображение с изображения из памяти?
Ответы
Ответ 1
Эта функция преобразует массив байтов в битмап, который может использоваться для установки свойства 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
Ответ 2
byte[] imageSource = **byte array**;
Bitmap image;
using (MemoryStream stream = new MemoryStream(imageSource))
{
image = new Bitmap(stream);
}
pictureBox.Image = image;
Ответ 3
using System.IO;
byte[] img = File.ReadAllBytes(openFileDialog1.FileName);
MemoryStream ms = new MemoryStream(img);
pictureBox1.Image = Image.FromStream(ms);
или вы можете получить доступ к этому прямо,
pictureBox1.Image = Изображение .FromFile(openFileDialog1.FileName);
Ответ 4
Вы также можете преобразовать изображение изображения в массив байтов, как это,
MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] img = ms.ToArray();
Ответ 5
Класс ImageConverter в пространстве имен System.Drawing может выполнить преобразование:
byte[] imageArray = **byte array**
ImageConverter converter = new ImageConverter();
pictureButton.Image = (Image)converter.ConvertFrom(imageArray);
Ответ 6
Если вы хотите использовать BinaryReader для преобразования, то используйте, например,
FileStream fs = новый FileStream (openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
BinaryReader br = новый BinaryReader (fs);
byte [] img = br.ReadBytes((int) fs.Length);