2010-11-10 93 views
5

我試圖製作一個Windows Phone 7應用程序,它將保存一些圖像離開網絡,我不知道我可以在哪裏或者如果我可以將圖像從網絡保存到手機。如何從網上下載和保存圖像?

如何保存圖像?

回答

5

在手機上,您可以使用HttbWebRequest(建議避免UI影響)或WebClient,根據我在此發佈的項目。

WebClient, HttpWebRequest and the UI Thread on Windows Phone 7

然後你可以把你的數據流,並將它傳遞到這種形式的東西將它寫入獨立存儲。

private void PicToIsoStore(Stream pic) { 
    using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication()) { 
     var bi = new BitmapImage(); 
     bi.SetSource(pic); 
     var wb = new WriteableBitmap(bi); 
     using (var isoFileStream = isoStore.CreateFile("somepic.jpg")) { 
      var width = wb.PixelWidth; 
      var height = wb.PixelHeight; 
      Extensions.SaveJpeg(wb, isoFileStream, width, height, 0, 100); 
     } 
    } 
} 

Jon是正確的,你也可以使用MediaLibrary.SavePicture。請注意,這會將圖片與用戶照片混合在圖片中心中。

這是直線前進的

private void PicToMediaLibary(Stream pic) { 
    MediaLibrary lib = new MediaLibrary(); 
    lib.SavePicture("blah", pic); 
} 

獨立存儲中存儲它基本上是你的應用的私密文件系統。

6

您可以使用WebClientWebRequest來下載它們以獲取原始字節。

然後您可以很容易地保存到isolated storage - 但我不相信您可以保存在圖片中心看到的任何位置,如果這是您的目標。 (我不能看到任何Microsoft.Phone.Tasks namespace這將是相關的有任務,以捕捉相機選擇一張照片,但不保存之一。)

編輯:哦,我剛找到了一個方法。您可以使用MediaLibrary類和SavePicture方法...雖然這是XNA,但我至少有問題關於它從Silverlight應用程序工作。我知道Silverlight有一些XNA API 工作,有些則沒有。值得試驗。

+1

是的,我想將它保存到類似於Androids圖庫的位置或文件夾。 – Landmine 2010-11-10 07:42:04

+0

@Landmine:看我的編輯。它*可能*是答案。 – 2010-11-10 07:43:21

+0

我確認,XNA API中的MediaLibrary類非常適用。只需要引用Microsoft.Xna.Framework程序集。 – 2010-11-10 07:48:44

相關問題