public MediaPage() { InitializeComponent(); takePhoto.Clicked += async(sender, args) => { if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported) { await DisplayAlert("No Camera", ":( No camera available.", "OK"); return; } var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions { Directory = "Test", SaveToAlbum = true, CompressionQuality = 75, CustomPhotoSize = 50, PhotoSize = PhotoSize.MaxWidthHeight, MaxWidthHeight = 2000, DefaultCamera = CameraDevice.Front }); if (file == null) { return; } string filePath = file.Path; await DisplayAlert("File Location", file.Path, "OK"); image.Source = ImageSource.FromStream(() => { var stream = file.GetStream(); file.Dispose(); return(stream); }); ILocalFileProvider service = DependencyService.Get <ILocalFileProvider>(DependencyFetchTarget.NewInstance); byte[] byteArray = null; using (service as IDisposable) { byteArray = service.GetFileBytes(filePath); } FreeOCR free = new FreeOCR(); string retVal = await free.SendImageAsync(byteArray); lblResult.Text = retVal.Trim(); IDeleteFromFile deleteService = DependencyService.Get <IDeleteFromFile>(DependencyFetchTarget.NewInstance); using (deleteService as IDisposable) { deleteService.DeleteFile(filePath); } image.Source = null; }; pickPhoto.Clicked += async(sender, args) => { if (!CrossMedia.Current.IsPickPhotoSupported) { await DisplayAlert("Photos Not Supported", ":( Permission not granted to photos.", "OK"); return; } var file = await Plugin.Media.CrossMedia.Current.PickPhotoAsync(new Plugin.Media.Abstractions.PickMediaOptions { PhotoSize = Plugin.Media.Abstractions.PhotoSize.Medium, }); if (file == null) { return; } image.Source = ImageSource.FromStream(() => { var stream = file.GetStream(); file.Dispose(); return(stream); }); }; }