我正在尝试使用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应用商店。
提前致谢
答案 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
你的问题的答案是,是的,你可以。我在自己的应用程序中完成了它。现在,这只是你在自己实施它的问题。你会发现它很容易。