Example #1
0
        protected async Task <ReferenceImagesModel> CameraCommand()
        {
            ReferenceImagesModel model = new ReferenceImagesModel();

            try
            {
                MediaFile _mediaFile;
                if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
                {
                    await App.Current.MainPage.DisplayAlert("No Camera", ":( No camera available.", "OK");

                    return(null);
                }

                _mediaFile = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
                {
                    Directory      = "Profile Photo",
                    SaveToAlbum    = true,
                    PhotoSize      = PhotoSize.Medium,
                    MaxWidthHeight = 2000,
                    DefaultCamera  = CameraDevice.Rear
                });


                if (_mediaFile == null)
                {
                    return(null);
                }

                //await App.Current.MainPage.DisplayAlert("File Location", file.Path, "OK");

                using (var memoryStream = new MemoryStream())
                {
                    _mediaFile.GetStream().CopyTo(memoryStream);
                    myfile = memoryStream.ToArray();
                    _mediaFile.Dispose();
                }
                model.ImageBytes      = myfile;
                model.ReferenceImages = ImageSource.FromStream(() => new MemoryStream(myfile));
                return(model);
                //CameraPicker = ImageSource.FromStream(() =>
                // {
                //     var stream = _mediaFile.GetStream();
                //     _mediaFile.Dispose();
                //     return stream;
                // });
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Example #2
0
        //#region IsCustomerFlow
        //private bool _isCustomerFlow;

        //public bool IsCustomerFlow
        //{
        //    get { return _isCustomerFlow; }
        //    set { SetProperty(ref _isCustomerFlow, value); }
        //}
        //#endregion

        #region Gallery/Camera command
        protected async Task <ReferenceImagesModel> GalleryCommand()
        {
            ReferenceImagesModel model = new ReferenceImagesModel();

            try
            {
                MediaFile _mediaFile;
                if (!CrossMedia.Current.IsPickPhotoSupported)
                {
                    await App.Current.MainPage.DisplayAlert("Photos Not Supported", ":( Permission not granted to photos.", "OK");

                    return(null);
                }
                _mediaFile = await Plugin.Media.CrossMedia.Current.PickPhotoAsync(new Plugin.Media.Abstractions.PickMediaOptions
                {
                    PhotoSize = Plugin.Media.Abstractions.PhotoSize.Medium,
                });


                if (_mediaFile == null)
                {
                    return(null);
                }


                using (var memoryStream = new MemoryStream())
                {
                    _mediaFile.GetStream().CopyTo(memoryStream);
                    myfile = memoryStream.ToArray();
                    _mediaFile.Dispose();
                }
                model.ImageBytes      = myfile;
                model.ReferenceImages = ImageSource.FromStream(() => new MemoryStream(myfile));
                return(model);//
                //ImagePicker = ImageSource.FromStream(() =>
                //{
                //    var stream = _mediaFile.GetStream();
                //    _mediaFile.Dispose();
                //    return stream;
                //});
            }
            catch (Exception ex)
            {
                return(null);
            }
        }