2013-05-20 149 views
1

我想用TcpClient和NetworkStream通过网络发送我的图像。如何将图像转换为字节[]?

类型的图像为(System.Windows.Controls.Image)

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

谢谢。

+0

可能重复[WPF图像,以字节为\ [\](http://stackoverflow.com/questions/553611/wpf-image-to-byte) – Clemens

+0

请看看上面提到的问题的答案。这里的答案要么不是关于WPF,要么完全是主题。 – Clemens

回答

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(); 
} 
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控件。

0

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

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