async void CapturePhoto() { var videoConnection = stillImageOutput.ConnectionFromMediaType(AVMediaType.Video); var sampleBuffer = await stillImageOutput.CaptureStillImageTaskAsync(videoConnection); var jpegImage = AVCaptureStillImageOutput.JpegStillToNSData(sampleBuffer); var photo = new UIImage(jpegImage); photo.SaveToPhotosAlbum((image, error) => { Console.Error.WriteLine(@" Error: ", error); }); AvatarPage avatarPage = new AvatarPage(); avatarPage.SetAvatarImage(photo.Description); await Element.Navigation.PushAsync(avatarPage); }
async Task TakePhotoAsync() { AvatarPage avatarPage = new AvatarPage(); var stream = new InMemoryRandomAccessStream(); await mediaCapture.CapturePhotoToStreamAsync(ImageEncodingProperties.CreateJpeg(), stream); try { var file = await captureFolder.CreateFileAsync("photo.jpg", CreationCollisionOption.GenerateUniqueName); var orientation = ConvertOrientationToPhotoOrientation(GetCameraOrientation()); await ReencodeAndSavePhotoAsync(stream, file, orientation); avatarPage.SetAvatarImage(file.Path); } catch (Exception ex) { Debug.WriteLine("Exception when taking photo: " + ex.ToString()); } await Element.Navigation.PushAsync(avatarPage); }
async void TakePhotoButtonTapped(object sender, EventArgs e) { camera.StopPreview(); AvatarPage avatarPage = new AvatarPage(); 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())); var fileStream = new FileStream(filePath, FileMode.Create); await image.CompressAsync(Bitmap.CompressFormat.Jpeg, 50, fileStream); fileStream.Close(); image.Recycle(); 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); Forms.Context.SendBroadcast(intent); avatarPage.SetAvatarImage(filePath); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(@" ", ex.Message); } camera.StartPreview(); await Element.Navigation.PushAsync(avatarPage); }