1

TcpClient と NetworkStream を使用して、ネットワーク経由で画像を送信したいと考えています。

画像の種類は (System.Windows.Controls.Image)

どうすればイメージをバイトに変換できますか?

ありがとう。

4

3 に答える 3

1

ネットワーク経由で画像を送信するには、画像をシリアル化する必要があります。

Image im = Image.FromFile(@"C:\hello.jpg");
MemoryStream ms = new MemoryStream();
im.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] Barray = ms.ToArray();

string str = string.Empty;
foreach (byte b in oImage)
{
    str += b.ToString();
}
于 2013-05-20T10:08:43.360 に答える
0

JPEGが原因で多くの問題が発生したため、画像をPNG形式に変換することをお勧めします。以下のコードを試してください

 byte[] b1=null;
 ByteArrayOutputStream baos=new ByteArrayOutputStream();
 ImageIO.write(img, "png", baos);
 b1=baos.toByteArray();
于 2016-05-01T12:30:01.780 に答える
0

以下のコードは、ユーザーが画像をアップロードできるようにする場合に役立ちます。

 FileStream fs;
 fs = new FileStream(OpenImage.FileName, FileMode.Open, FileAccess.Read);
 byte[] picByte;
 picByte = new byte[Convert.ToInt32(fs.Length)];
 fs.Read(picByte, 0, Convert.ToInt32(fs.Length));
 fs.Close();

ここで、OpenImage は OpenFileDialog コントロールです。

于 2013-05-20T10:09:12.577 に答える