在将流转换为字节时将{byte [0]}作为输出

时间:2015-03-05 08:30:16

标签: c#-4.0 windows-phone-8 stream

您好我想将Stream转换为Byte,为此我使用以下代码进行转换。

  void photoChooserTask_Completed(object sender, PhotoResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {

            var imageSrc = new BitmapImage();
            imageSrc.SetSource(e.ChosenPhoto);
            imgUploadedInsurance.Source = imageSrc;               
            _BitmapImage.SetSource(e.ChosenPhoto);
            image = Converter.StreamToByte(e.ChosenPhoto);
        }
    }

下面的方法用于转换返回0字节

  public static byte[] StreamToByte(Stream input)
    {
        //byte[] buffer = new byte[16 * 1024];
        byte[] buffer = new byte[input.Length];
        using (MemoryStream ms = new MemoryStream())
        {
            int read;
            while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
            {
                ms.Write(buffer, 0, read);
            }

               // input.CopyTo(ms);


            return ms.ToArray();
        }
    }

1 个答案:

答案 0 :(得分:0)

你不能归ms.ToArray(),而是buffer。这是我的方法版本:

public static byte[] StreamToByte(Stream input)
{
    byte[] buffer = new byte[input.Length];
    input.Read(buffer, 0, buffer.Length);
    return buffer;
}