如何将system.windows.controls.image转换为byte []

时间:2011-03-24 12:16:04

标签: c# .net wpf silverlight

我需要将System.Windows.Controls.Image转换为byte[]

怎么做?

3 个答案:

答案 0 :(得分:2)

假设您回答上面的查询,您实际上是在尝试将图像转换为字节数组,而不是将图像控件转换为字节数组,这里是执行此操作的代码;

public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
 MemoryStream ms = new MemoryStream();
 imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
 return  ms.ToArray();
}

答案 1 :(得分:1)

通常,要将对象转换为字节数组,您可能需要使用二进制序列化。这将生成一个内存流,您可以从中提取字节数组。 你可以从Question and Answer

开始

答案 2 :(得分:1)

System.Windows.Controls.Image img = new System.Windows.Controls.Image();
var uri = new Uri("pack://application:,,,/Images/myImage.jpg");
img.Source = new BitmapImage(uri);
byte[] arr;
using (MemoryStream ms = new MemoryStream())
{
      var bmp = img.Source as BitmapImage;
      JpegBitmapEncoder encoder = new JpegBitmapEncoder();
      encoder.Frames.Add(BitmapFrame.Create(bmp));
      encoder.Save(ms);
      arr = ms.ToArray();
}