在XAML / C#中捕获并保存照片以用于Windows应用商店

时间:2013-03-04 14:30:21

标签: xaml windows-8 image-capture

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

我正在使用下面的代码拍摄照片和这项工作,但我想在设备的本地驱动器上自动创建一个目录,并在没有任何对话框提示的情况下将照片保存在那里。

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

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.
    }
}

所以在此之后我想自动将照片保存到新目录。 e.g。

我的照片\ NewDirectory \ Photo1.jpg

有人知道我该怎么做吗?

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

提前致谢

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

要拍照,您的代码是正确的。我有一个演练,以防您想要与其他代码进行验证:http://blog.jerrynixon.com/2012/10/walkthrough-capturing-photos-in-your.html

要与文件系统进行交互,这可能很棘手,但如果您想引用它,我会对此有更长的记录:http://blog.jerrynixon.com/2012/06/windows-8-how-to-read-files-in-winrt.html

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