Xamarin.Forms获取图像路径

时间:2014-10-03 11:52:04

标签: image filepath xamarin.forms

使用此处的Xamarin.Forms相机示例 - https://github.com/XForms/Xamarin-Forms-Labs-Samples/tree/master/XF.Labs.CameraSample我可以选择或拍照。然后我需要将此图像转换为二进制

所以这是选择图像的代码:

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;
    }

2 个答案:

答案 0 :(得分:3)

不应该这样做累了

它内置于MediaFile中,所以答案就是mediaFile.Path.ToString();

答案 1 :(得分:0)

mediaFile.Path将为您提供实际路径