/// <summary>
        /// Takes the picture.
        /// </summary>
        /// <returns>Take Picture Task.</returns>
        private async Task <MediaFile> TakePicture()
        {
            Setup();

            ImageSource = null;

            return(await _mediaPicker.TakePhotoAsync(new CameraMediaStorageOptions { DefaultCamera = CameraDevice.Front, MaxPixelDimension = 400 }).ContinueWith(t =>
            {
                if (t.IsFaulted)
                {
                    Status = t.Exception.InnerException.ToString();
                }
                else if (t.IsCanceled)
                {
                    Status = "Canceled";
                }
                else
                {
                    var mediaFile = t.Result;

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

                    return mediaFile;
                }

                return null;
            }, _scheduler));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Takes the picture.
        /// </summary>
        /// <returns>Take Picture Task.</returns>
        public async Task <MediaFile> TakePicture()
        {
            Setup();

            ImageSource = null;

            return(await _mediaPicker.TakePhotoAsync(new CameraMediaStorageOptions { DefaultCamera = CameraDevice.Front, MaxPixelDimension = 400 }).ContinueWith(t =>
            {
                if (t.IsFaulted)
                {
                    Status = t.Exception.InnerException.ToString();
                }
                else if (t.IsCanceled)
                {
                    Status = "A task was canceled.";
                }
                else
                {
                    var mediaFile = t.Result;

                    Uri path = new Uri(mediaFile.Path);
                    //ImageSource = Path.GetFileName(path.AbsoluteUri.ToString());
                    byte[] imgData = ReadStream(mediaFile.Source);
                    Status = Path.GetFileName(path.AbsoluteUri.ToString());
                    ImageArray = imgData;

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

                    return mediaFile;
                }

                return null;
            }, _scheduler));
        }