将流转换为byte时,正在获取{byte[0]}作为输出



Hi我想将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();
        }
    }

您不会返回ms.ToArray(),而是返回buffer。以下是我的方法版本:

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

相关内容

  • 没有找到相关文章

最新更新