首页 > 解决方案 > UWP 中的 BitmapImage 到 StorageFile

问题描述

通过这样做,我有一个 BitmapImage:

var bitmap = new BitmapImage(new Uri(url, UriKind.Absolute))

但是,因为我正在使用 Cortana 应用程序,所以我需要使用 StorageFile 作为图像类型(非常愚蠢的 imo,但就是这样)

那么,如何将该位图转换为我需要的 StorageFile,或者如何通过 URL 将图像下载到 StorageFile,因为

StorageFle.GetFileFromApplicationUriAsync(Uri uri)

不断弹出“值不在指定范围内”的异常

任何帮助将不胜感激,谢谢!

标签: c#uwpwin-universal-app

解决方案


StorageFle.GetFileFromApplicationUriAsync用于获取应用资源。

要将远程 Uri 下载为. StorageFile,请使用StorageFile.CreateStreamedFileFromUriAsync

var path = "https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-logo.png";
var file = await StorageFile.CreateStreamedFileFromUriAsync(Path.GetFileName(path), 
    new Uri(path), null);

您还可以将文件保存到磁盘检查它是否正确下载。

await file.CopyAsync(ApplicationData.Current.LocalFolder);

推荐阅读