如何将位图图像保存到本地文件夹Windows应用商店应用

如何将位图图像保存到本地文件夹Windows应用商店应用,windows,image,c#-4.0,windows-8,windows-store-apps,Windows,Image,C# 4.0,Windows 8,Windows Store Apps,我在拍照后将图像设置为网格(imageGrid),以便用户可以查看它。完成一些任务后,我希望用户能够按下按钮保存图片和文本信息。我在将文本保存到文件中时没有问题,但我似乎找不到任何关于以这种方式保存图像的信息。我不想直接从相机中保存它。我需要让用户能够保存它的命令。 所以我的问题是,在将捕获的图像设置为XAML图像后,如何保存它?提前感谢。正如桑德拉已经建议的那样,您需要保留CaptureFileAsync的结果。该方法已将捕获的图像保存到文件中,并将其作为StorageFile返回给您。只要将

我在拍照后将图像设置为网格(imageGrid),以便用户可以查看它。完成一些任务后,我希望用户能够按下按钮保存图片和文本信息。我在将文本保存到文件中时没有问题,但我似乎找不到任何关于以这种方式保存图像的信息。我不想直接从相机中保存它。我需要让用户能够保存它的命令。
所以我的问题是,在将捕获的图像设置为XAML图像后,如何保存它?提前感谢。

正如桑德拉已经建议的那样,您需要保留
CaptureFileAsync
的结果。该方法已将捕获的图像保存到文件中,并将其作为
StorageFile
返回给您。只要将该引用存储到私有字段,并在用户单击“保存”后从中复制:

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?

    }

正如Sandra已经建议的,您需要保留
CaptureFileAsync
的结果。该方法已将捕获的图像保存到文件中,并将其作为
StorageFile
返回给您。只要将该引用存储到私有字段,并在用户单击“保存”后从中复制:

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?

    }

这个问题可能重复-谢谢你,但不是,我读了这个问题。这与直接从相机中保存有关。我无法用我的应用程序实现这一点。不幸的是,正如该线程所示,无法直接从BitmapImage保存;你必须回到源头。由于您是从相机捕获流的,所以只需在用户按下按钮之前挂在流对象上即可。此问题可能重复-谢谢,但不,我读了此问题。这与直接从相机中保存有关。我无法用我的应用程序实现这一点。不幸的是,正如该线程所示,无法直接从BitmapImage保存;你必须回到源头。由于您是从相机捕获流的,所以只需挂在流对象上,直到用户按下按钮即可。谢谢。你完全回答了我的问题,谢谢。你完全回答了我的问题。