簡體   English   中英

如何從硬盤上的Internet保存BitmapImage? (C#UniversalApp)

[英]How to save BitmapImage from Internet on hard drive? (C# UniversalApp)

這聽起來很簡單,但我注意到這對我來說不是! 我想將一個簡單的jpg或其他格式的圖像從Internet保存到硬盤。 我使用以下代碼從網上獲取圖像。 如何將其保存到HDD?

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

如果有人能給我一個簡單的代碼示例並解釋其工作原理,我將不勝感激。
最好在C#和Windows Universal App兼容的情況下,謝謝。

編輯。 我也想知道是否有可能將BitmapImage轉換為JSON並從那里讀回?

我猜這對您來說似乎並不簡單的原因是您在錯誤的位置看

位圖源和位圖圖像僅用於加載圖像,保存功能在編碼器中分類,例如PngEncoder

一旦選擇了正確的編碼器,則只需將圖像作為幀添加到其中,然后將其保存到流中

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

這里找到。 創建該圖像時,需要花費一些時間來下載它。 您可以檢查是否正在下載

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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM