2014-10-03 220 views
1

從這裏使用Xamarin.Forms相機示例 - https://github.com/XForms/Xamarin-Forms-Labs-Samples/tree/master/XF.Labs.CameraSample我可以選擇或拍攝照片。那麼我就需要這個圖像轉換成二進制Xamarin.Forms獲取圖像路徑

所以這裏是選擇圖像的代碼:

private async Task SelectPicture() 
{ 
    mediaPicker = DependencyService.Get<IMediaPicker>(); 
    imageSource = null; 
     var mediaFile = await mediaPicker.SelectPhotoAsync(new CameraMediaStorageOptions 
      { 
       DefaultCamera = CameraDevice.Front, 
       MaxPixelDimension = 400 
      }); 
     imageSource = ImageSource.FromStream(() => mediaFile.Source); 
     img.Source = imageSource; 

} 

和接收圖片的代碼非常相似

private async Task TakePicture() 
{ 
    mediaPicker = DependencyService.Get<IMediaPicker>(); 
    imageSource = null; 
     var mediaFile = await mediaPicker.TakePhotoAsync(new CameraMediaStorageOptions 
      { 
       DefaultCamera = CameraDevice.Front, 
       MaxPixelDimension = 400 
      }); 
     imageSource = ImageSource.FromStream(() => mediaFile.Source); 
     img.Source = imageSource; 

} 

我該怎麼辦從上面獲取實際的字符串imagePath,以便我可以調用下面的DependencyService?

public byte[] ImageToBinary(string imagePath) 
    { 

     FileStream fileStream = new FileStream(imagePath, FileMode.Open, FileAccess.Read); 
     byte[] buffer = new byte[fileStream.Length]; 
     fileStream.Read(buffer, 0, (int)fileStream.Length); 
     fileStream.Close(); 
     return buffer; 
    } 

回答

3

不應該做這個東西累

它是建立在對媒體文件,因此答案很簡單mediaFile.Path.ToString();

0

mediaFile.Path會給你實際的路徑