2

我正在尝试使用 Windows Surface 设备拍摄并保存照片。

我正在使用下面的代码拍摄照片,但我想在设备的本地驱动器上自动创建一个目录,并将这张照片保存在那里,而不需要任何对话框提示。

所以我用来捕捉照片的代码如下:

CameraCaptureUI camera = new CameraCaptureUI();

StorageFile file = await camera.CaptureFileAsync(CameraCaptureUIMode.Photo);
if (file!=null)
{
    using (IRandomAccessStream ras=await file.OpenAsync(FileAccessMode.Read))
    {
        BitmapImage source = new BitmapImage();
        source.SetSource(ras);

        imageBuildingPhoto.Source = source; // this is just an image control.
    }
}

所以在此之后我想自动将照片保存到一个新目录。例如

我的图片\新目录\Photo1.jpg

有人知道我该怎么做吗?

这是一个使用 C#4.5 和 XAML 编写的 Windows 商店应用程序。

提前致谢

4

2 回答 2

2

对您返回的对象(文件)使用该CopyAsync方法。StorageFile您可以指定目录和文件名。如果您需要创建自己的目录结构,则需要在 Package Manifest 中启用对相应库的访问,然后在代码中创建它。然后,您将使用StorageFolder该类及其CreateFolderAsync方法来创建文件夹。

http://aka.ms/30Days有一些很好的资源来学习这样的场景。可能值得一试。

于 2013-03-04T15:24:07.767 回答
1

您的代码将需要查看该文件夹是否存在,如果不存在则创建它。您的应用也需要在应用清单中声明访问用户照片库的能力。

要拍照,您的代码是正确的。如果您想根据其他代码验证它,我有一个演练:http: //blog.jerrynixon.com/2012/10/walkthrough-capturing-photos-in-your.html

要与文件系统交互,这可能会很棘手,但如果你想引用它,我会写更长的文章:http: //blog.jerrynixon.com/2012/06/windows-8-how-to-读取文件-in-winrt.html

你的问题的答案是,是的,你可以。我已经在自己的应用程序中完成了。现在,这只是你在你的实现它的问题。你会发现这很容易。

于 2013-03-04T21:59:35.030 回答