async void TakePhotoButtonTapped(object sender, EventArgs e) { if (isLoading) { return; } camera.StopPreview(); isLoading = true; MessagingCenter.Send <CustomCameraPage>(CustomCameraPage.getInstance(), "StartLoading"); var image = textureView.Bitmap; try { var absolutePath = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDcim).AbsolutePath; var folderPath = absolutePath + "/Camera"; var filePath = System.IO.Path.Combine(folderPath, string.Format("photo_{0}.jpg", Guid.NewGuid())); FileStream fileStream = new FileStream(filePath, FileMode.Create); await image.CompressAsync(Bitmap.CompressFormat.Jpeg, 50, fileStream); var intent = new Android.Content.Intent(Android.Content.Intent.ActionMediaScannerScanFile); var file = new Java.IO.File(filePath); var uri = Android.Net.Uri.FromFile(file); intent.SetData(uri); MainActivity.Instance.SendBroadcast(intent); Stream stream = fileStream as Stream; //MessagingCenter.Send<CustomCameraPage>(CustomCameraPage.getInstance(), "Navigation"); //MessagingCenter.Send<CustomCameraPage, string>(CustomCameraPage.getInstance(), "PathSend", filePath); List <Species> speciesList = await CameraHelper.CommonOperationCameraLibPictures(stream); MessagingCenter.Send <CustomCameraPage, List <Species> >(CustomCameraPage.getInstance(), "StreamSend", speciesList); //MessagingCenter.Send<CustomCameraPage, Stream>(CustomCameraPage.getInstance(), "StreamSend", stream); fileStream.Close(); image.Recycle(); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(@" ", ex.Message); } isLoading = false; MessagingCenter.Send <CustomCameraPage>(CustomCameraPage.getInstance(), "StopLoading"); camera.StartPreview(); }
async void GalleryButtonTapped(object sender, EventArgs e) { if (isLoading) { return; } if (!CrossMedia.Current.IsPickPhotoSupported) { return; } var file = await Plugin.Media.CrossMedia.Current.PickPhotoAsync(new Plugin.Media.Abstractions.PickMediaOptions { PhotoSize = Plugin.Media.Abstractions.PhotoSize.Medium, }); if (file == null) { return; } MessagingCenter.Send <CustomCameraPage>(CustomCameraPage.getInstance(), "StartLoading"); camera.StopPreview(); isLoading = true; Stream stream = file.GetStream(); List <Species> speciesList = await CameraHelper.CommonOperationCameraLibPictures(stream); MessagingCenter.Send <CustomCameraPage, List <Species> >(CustomCameraPage.getInstance(), "StreamSend", speciesList); MessagingCenter.Send <CustomCameraPage>(CustomCameraPage.getInstance(), "StopLoading"); isLoading = false; file.Dispose(); camera.StartPreview(); }