2016-05-16 31 views
1

獲得圖像的byte []我使用Xamarin.Forms,所以,當我試圖從圖庫中選擇照片(我用https://components.xamarin.com/view/mediaplugin與照片處理),我需要得到byte[]爲圖像使用它的Web服務,我怎麼能做到這一點。如何在Xamarin.forms

檢查下面我的代碼:

ChoosePhotoButton.Clicked += async (sender, args) => 
{ 
    if (!CrossMedia.Current.IsPickPhotoSupported) 
    { 
     DisplayAlert("Photos Not Supported", ":(Permission not granted to photos.", "OK"); 
     return; 
    } 
    var file = await CrossMedia.Current.PickPhotoAsync(); 


    if (file == null) 
     return; 

    image.Source = ImageSource.FromStream(() => 
     { 
      var stream = file.GetStream(); 
      file.Dispose(); 
      return stream; 
     }); 
    OptionalInfoPage.DriverImage = image; 
}; 

回答

1

我直接使用file.GetStream().CopyTo(memoryStream)檢查下面的代碼把它從文件:

using (var memoryStream = new System.IO.MemoryStream()) 
    { 
      file.GetStream().CopyTo(memoryStream); 
     // file.Dispose(); 
      byte[] ImageBytes = memoryStream.ToArray(); 
    } 
2

我覺得你做得很好,如果你的代碼返回一個有效的流!只是嘗試加入這個而不是返回流,,

byte[] ImageBytes = stream.ToArray(); 
return ImageBytes;