2014-07-15 25 views
0

我正在爲windows phone 7構建應用程序,其中我每隔1秒拍攝一張截圖,所有截圖都保存在媒體庫中,文件名是1.jpg,2.jpg,3。 JPG .........等等。現在當我從圖書館拍攝圖像時,我會隨機獲取圖像(1.jpg,2.jpg,3.jpg,7.jpg,13.jpg,4.jpg,15.jpg,5.jpg)不按順序。 我怎樣才能在sequence.here所有圖像是我的代碼從媒體庫中按順序獲取圖片

使用(MediaLibrary mediaLibrary =新MediaLibrary())

{

PictureCollection AllScreenShot = mediaLibrary.Pictures; 
foreach (Picture picture in AllScreenShot) 
{ 
     using (IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication()) 
     { 
      if (!storage.DirectoryExists("SavedImg")) 
         storage.CreateDirectory("SavedImg"); 

        if (storage.FileExists("SavedImg" + "\\" + picture.Name)) 
         storage.DeleteFile("SavedImg" + "\\" + picture.Name); 
        using (IsolatedStorageFileStream file = storage.CreateFile("SavedImg" + "\\" + picture.Name)) 
         picture.GetImage().CopyTo(file); 
     } 
} 

}

+2

您應該在讀取之前獲得所有文件名的列表並對它們進行排序。 –

回答

0

創建圖像列表並將所有圖像存儲在列表中。它會是這樣的,

List<Image> listImage = new List<Image>(10); // say 10 

listImage.Add(your image Item) in your case its pic 1.jpg; // cast before adding 

List<Image> orderedList = listImage.OrderBy(k => k.ToString()).ToList(); 

其實它不是.ToString()。我宣佈要讓你清楚這個概念。在Image的情況下,首先需要將其轉換爲byte [],然後將byte []存儲在列表中,最後執行OrderBy選項,它將按順序對圖像進行排序。