private async void Button_Click2(object sender, RoutedEventArgs e) { CameraCaptureUI camera = new CameraCaptureUI(); camera.PhotoSettings.AllowCropping = true; camera.PhotoSettings.CroppedAspectRatio = new Size(16, 9); StorageFile photo = await camera.CaptureFileAsync(CameraCaptureUIMode.Photo); if (photo != null) { IRandomAccessStream stream = await photo.OpenAsync(FileAccessMode.Read); bmp.SetSource(stream); imageGrid.Source = bmp; } } private async void saveButton_Click3(object sender, RoutedEventArgs e) { //Save Image to the file //What code goes here? }
拍照后将图像设置为网格(imageGrid),以便用户查看。 完成一些任务后,我希望用户能够按下button来保存图片和文本信息。 我没有问题将文本保存到文件,但我似乎无法find有关以这种方式保存图像的任何信息。 我不想直接从相机保存它。 我需要赋予用户命令保存它的能力。 所以我的问题是,如何将设置为XAML图像后的捕获的图像保存到用户界面? 提前致谢。
正如桑德拉已经建议的,你需要坚持CaptureFileAsync
的结果。 该方法已经将捕获的图像保存到一个文件并将其作为StorageFile
返回给您。 只需将该引用存储到专用字段,并在用户单击“ Save
后将其复制
private StorageFile photo; private async void Button_Click2(object sender, RoutedEventArgs e) { CameraCaptureUI camera = new CameraCaptureUI(); camera.PhotoSettings.AllowCropping = true; camera.PhotoSettings.CroppedAspectRatio = new Size(16, 9); photo = await camera.CaptureFileAsync(CameraCaptureUIMode.Photo); if (photo != null) { IRandomAccessStream stream = await photo.OpenAsync(FileAccessMode.Read); bmp.SetSource(stream); imageGrid.Source = bmp; } } private async void saveButton_Click3(object sender, RoutedEventArgs e) { if (photo != null) { await photo.MoveAsync(ApplicationData.Current.LocalFolder, newFilename); } }