コード例 #1
0
ファイル: ImageChooser.cs プロジェクト: IdanLevi/Naylah
        private async Task LoadImageFromUri(Uri actualImageUri)
        {
            try
            {
                image = new CachedImage();
                image.DownsampleToViewSize = true;
                image.Error += (s, e) =>
                {
                    ImageChooserOptionsData?.ExceptionOccurredAction?.Invoke(e.Exception);
                };

                centerContentView.Content = image;

                if (actualImageUri == null)
                {
                    return;
                }

                if (actualImageUri.IsFile || actualImageUri.IsUnc)
                {
                    CurrentMediaFile = await FileSystem.Current.GetFileFromPathAsync(actualImageUri.AbsolutePath.ToString());

                    //image.Source = ImageSource.FromUri(actualImageUri);
                }
                else
                {
                    var imagebuffer = await DownloadHelper.DownloadAsByteArray(actualImageUri);

                    var file = await GetTempNewFile();

                    await file.SaveByteArrayToThisFile(imagebuffer);

                    CurrentMediaFile = file;
                }

                TouchAndChangeImageSource(CurrentMediaFile.Path);
            }
            catch (Exception ex)
            {
                ImageChooserOptionsData?.ExceptionOccurredAction?.Invoke(ex);
            }
            finally
            {
                IsLoading = false;
            }
        }