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

希望下面的代码对您有所帮助。如果您允许用户上传图片。

 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 回答
0

我建议将图像转换为 PNG 格式,因为 JPEG 我遇到了很多问题。试试下面的代码

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