web-dev-qa-db-ja.com

C#でbyte []から画像ボックスに画像を配置する方法

ビットマップ形式の画像バイナリデータを含むバイト配列があります。 C#でPictureBoxコントロールを使用して表示するにはどうすればよいですか?

以下にリストするいくつかの投稿を調べましたが、バイト配列を他の何かに変換してからピクチャーボックスに送信する必要があるかどうかはわかりません。よろしくお願いします。ありがとう!

ビットマップから画像ボックスに画像を配置する方法メモリから画像ボックス画像を読み込みますか?

16
Kevin

この関数は、バイト配列をビットマップに変換します。これを使用して、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
43
John Woo
byte[] imageSource = **byte array**;
Bitmap image;
using (MemoryStream stream = new MemoryStream(imageSource))
{
   image = new Bitmap(stream);
}
pictureBox.Image = image;
6
Wizetux

このようにpictureBox画像をバイト配列に変換することもできます、

MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] img = ms.ToArray();
2
Md Shahriar
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);

1
Md Shahriar

BinaryReaderを使用して変換する場合は、次のように使用します。

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

BinaryReader br =新しいBinaryReader(fs);

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

0
Md Shahriar

System.Drawing名前空間のImageConverterクラスが変換を実行できます。

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