2014-10-03 3 views
1

Использование образца камеры Xamarin.Forms отсюда - https://github.com/XForms/Xamarin-Forms-Labs-Samples/tree/master/XF.Labs.CameraSample Я могу выбрать или сделать снимок. Я тогда нужно преобразовать этот файл в двоичныйXamarin.Forms get image path

так вот код, который выбирает изображение:

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 поэтому ответ просто mediaFile.Path.ToString();

0

mediaFile.Path даст вам фактический путь