UWP浏览图片并保存资产

时间:2016-03-13 06:26:40

标签: win-universal-app

我已创建包含注册步骤的UWP,并且在注册步骤中我希望用户上传图片,我希望当用户上传时它会自动保存在资源文件夹中我想知道2件事

  1. 如何访问图片(可能来自相机胶卷或拍照)

  2. 如何将用户上传的图片保存到资产文件夹

  3. 谢谢

1 个答案:

答案 0 :(得分:1)

获取图片

让用户从他的照片库中选择它:

var picker = new FileOpenPicker
{
    SuggestedStartLocation = PickerLocationId.PicturesLibrary,
    FileTypeFilter = {".jpg", ".jpeg", ".png", ".gif"}
};
var file = await picker.PickSingleFileAsync();

拍照:

var capture = new CameraCaptureUI
{
    PhotoSettings =
    {
        Format = CameraCaptureUIPhotoFormat.Jpeg
    }
};
var file = await capture.CaptureFileAsync(CameraCaptureUIMode.Photo);

在这两种情况下,结果都是IStorageFile

保存图片

我不太确定,你的意思是“资产文件夹”。项目中的Assets文件夹是应用程序的一部分,仅包含随原始应用程序包一起分发的文件。你无法在那里保存其他文件。

如果您想在本地保存文件,可以使用application storage folders之一,例如LocalFolder

await file.CopyAsync(ApplicationData.Current.LocalFolder, "profile.jpg");

如果您想将其上传到服务器并让它可以全局访问所有用户,那么您当然需要一些服务器端代码,例如:将图片发布到的上传页面:

var uri = new Uri("http://my.server.com/upload");
var uploader = new BackgroundUploader();
var upload = uploader.CreateUpload(uri, file);
await upload.StartAsync();

然后,您可以将文件保存在服务器上的某个位置,并使其可供应用程序访问。查看the official sample以查看文件上传的有效实施。