请教下我这byte获取stream的数据是0获取到长度但里边内容没获取到这是为什么
  JpegBitmapEncoder encoder = new JpegBitmapEncoder();
            encoder.Frames.Add(BitmapFrame.Create(BitmapFrame.Create(image1.Source as BitmapSource)));            string fileName = "t.jpg";
            using (FileStream stream = new FileStream(fileName, FileMode.Create)) 
            {
                encoder.Save(stream);
                byte[] abc = new byte[stream.Length];
                stream.Read(abc, 0, Convert.ToInt32(abc.Length));
                stream.Flush();
                stream.Close();
                 st = Convert.ToBase64String(abc); 
            }
            abc获取到stream的长度但内容全是0;

解决方案 »

  1.   

     using (FileStream fs = new FileStream("D:\\12345.jpg", FileMode.Open))
                {
                    byte[] abc = new byte[fs.Length];
                    BinaryReader br = new BinaryReader(fs);
                    abc = br.ReadBytes(Convert.ToInt32(fs.Length));
                }
      

  2.   

    stream已经到尾巴了。应该倒回,例如:
    using(MemoryStream ms = new MemoryStream())
    {
       encoder.Save(ms);
       ms.Position = 0;   //<---
       st = Convert.ToBase64String( ms.ToArray() );
    }
      

  3.   


    stream.Seek(0, SeekOrigin.Begin);