如何将图像转换为byte []?

时间:2013-05-20 10:03:36

标签: wpf

我想通过网络使用TcpClient和NetworkStream发送我的图像。

图像类型是(System.Windows.Controls.Image)

现在我如何将我的图像转换为字节?

感谢。

3 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分: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控件。

答案 2 :(得分:0)

我建议将图片转换为PNG格式,因为我因为JPEG而遇到很多问题。请尝试以下代码

 byte[] b1=null;
 ByteArrayOutputStream baos=new ByteArrayOutputStream();
 ImageIO.write(img, "png", baos);
 b1=baos.toByteArray();