簡體   English   中英

我使用XLABS從圖庫中挑選圖像。 如何獲取圖像的文件路徑?

[英]I use XLABS to pick images from a gallery. How to get the filepath of the image?

在我的xamarin表單項目中使用XLABS,我嘗試獲取圖像的基礎數據,但是我不確定如何用當前代碼獲取它。 我有一個ViewModel和一個頁面,我可以在其中使用該函數,並且函數本身可以正常工作。 我可以選擇圖像並獲取它。 但是我想獲取路徑/文件數據。

我的視圖模型:

public ImageSource ImageSource
    {
        get { return _ImageSource; }
        set { SetProperty (ref _ImageSource, value); }
    }

private byte[] imageData;

    public byte[] ImageData { get { return imageData; } }

    private byte[] ReadStream(Stream input)
    {
        byte[] buffer = new byte[16*1024];
        using (MemoryStream ms = new MemoryStream())
        {
            int read;
            while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
            {
                ms.Write(buffer, 0, read);
            }
            return ms.ToArray();
        }
    }

    public async Task SelectPicture()
    {
        Setup ();

        ImageSource = null;


        try
        {
            var mediaFile = await _Mediapicker.SelectPhotoAsync(new CameraMediaStorageOptions
                {
                    DefaultCamera = CameraDevice.Front,
                    MaxPixelDimension = 400
                });

            VideoInfo = mediaFile.Path;
            ImageSource = ImageSource.FromStream(() => mediaFile.Source);

        }
        catch (System.Exception ex)
        {
            Status = ex.Message;
        }
    }


    private static double ConvertBytesToMegabytes(long bytes)
    {
        double rtn_value = (bytes / 1024f) / 1024f;

        return rtn_value;
    }

我使用它的頁面:

MyViewModel photoGallery = null;

photoGallery = new MyViewModel ();

private async void btnPickPicture_Clicked (object sender, EventArgs e)
    {
        await photoGallery.SelectPicture (); 
        imgPicked.Source = photoGallery.ImageSource; //imgPicked is my image x:name from XAML.

    }

MediaFile具有Path屬性。 您甚至可以在ViewModel中引用它

VideoInfo = mediaFile.Path;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM