如何在硬盘上保存Internet上的BitmapImage? (C#UniversalApp)

时间:2016-08-09 12:03:28

标签: c# image save win-universal-app bitmapimage

这可能听起来很简单,但我注意到它不适合我!我想将一个简单的jpg或其他格式图像从互联网保存到硬盘。我使用以下代码从网上获取图像。如何将其保存到硬盘?

BitmapImage posterBitmap = new BitmapImage(new Uri(imageLocationOnNet, UriKind.Absolute));

如果有人能给我一个简单的代码示例并解释它是如何工作的,我会很感激 最好在C#和Windows Universal App兼容,谢谢。

EDIT。我也有兴趣知道是否可以将BitmapImage转换为JSON并从那里读回来?

2 个答案:

答案 0 :(得分:0)

我猜你看起来不太简单的原因是你在错误的地方看

位图源和位图图像仅用于加载图像,保存功能在编码器中,例如PngEncoder

一旦选择了正确的编码器,您只需将图像作为一个帧添加到其中,然后将其保存到流中

encoder.Frames.Add(BitmapFrame.Create(image));
encoder.Save(stream);

答案 1 :(得分:0)

找到here。创建该图像时,下载它需要一些时间。您可以查看是否使用

下载
posterBitmap.IsDownloading

完成后,添加处理程序

posterBitmap.DownloadCompleted += posterBitmap_DownloadCompleted;

然后编写保存图像的功能

private void objImage_DownloadCompleted(object sender, EventArgs e)
{
  JpegBitmapEncoder encoder = new JpegBitmapEncoder();
  Guid photoID = System.Guid.NewGuid();
  String photolocation = photoID.ToString() + ".jpg";  //file name 

  encoder.Frames.Add(BitmapFrame.Create((BitmapImage)sender));

  using (var filestream = new FileStream(photolocation, FileMode.Create))
    encoder.Save(filestream);
}