首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WinRt - FileSavePicker,将图像从URI保存到文件

WinRt - FileSavePicker,将图像从URI保存到文件
EN

Stack Overflow用户
提问于 2015-03-16 10:00:19
回答 1查看 306关注 0票数 0

我想问如何保存图像从一个流到另一个文件。我已经创建了这个FileSavePicker,但是我不知道如何从Uri中保存图像

谢谢

代码语言:javascript
复制
  StreamReader reader = new StreamReader(dataStream);
                // Read the content.
               string responseFromServer = reader.ReadLine(); // URi with image


 private async void saveClick(object sender, RoutedEventArgs e)
    {
       var Picker = new FileSavePicker();
       Picker.FileTypeChoices.Add("Image", new List<string>() { ".jpg" });
       StorageFile file = await Picker.PickSaveFileAsync();



    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-17 01:31:03

我想您已经将图像下载到dataStream中了。如果不是,您可以使用HttpClient类这样做:

代码语言:javascript
复制
var uri = new Uri("http://cdn.sstatic.net/stackexchange/img/logos/so/so-logo-med.png");
Windows.Web.Http.HttpClient httpClient = new HttpClient();
var stream = await httpClient.GetInputStreamAsync(uri);
Stream dataStream = stream.AsStreamForRead();

您可以通过在OpenStreamForWriteAsync上调用StorageFile来获取可写入的流到所选文件。使用两个流,您可以调用CopyTo从dataStream复制到保存流。

代码语言:javascript
复制
var Picker = new FileSavePicker();
Picker.FileTypeChoices.Add("Image", new List<string>() { ".jpg" });
StorageFile file = await Picker.PickSaveFileAsync();
using (Stream saveStream = await file.OpenStreamForWriteAsync())
{
    dataStream.Seek(0, SeekOrigin.Begin);
    await dataStream.CopyToAsync(saveStream);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29073976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档