Xamarin.Forms获取图像路径

问题描述:

从这里使用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; 
    } 

不应该做这个东西累

它是建立在对媒体文件,因此答案很简单mediaFile.Path.ToString();

mediaFile.Path会给你实际的路径