У меня есть требование сохранить 5 последних снимков из альбома «Сохраненные фотографии» из MediaLibrary в IsolatedStorage. Я не совсем уверен, что лучший способ выполнить эту задачу. Пока я просматриваю MediaLibrary для альбома «Saved Pictures». Если альбом существует и изображения существуют в этом альбоме, мне нужно взять последние 5 изображений, начинающихся с имени файла TestApp, и сохранить их в IsolStorage. Имена будут использоваться для обновления плитки, поэтому путь к файлу каждого изображения очень специфичен. То, что я до сих пор выглядит следующим образом, я JUS tnot уверен, как сохранить p.GetImage()
(который возвращает изображение из MediaLibrary типа System.IO.Stream
) в IsolatedStorage с обновленным именем файлаКак сохранить изображения из MediaLibrary в IsolatedStorage
private PictureCollection _pictures = null;
public void StoreCycleTileImages()
{
string _photoPath = @"\Shared\ShellContent";
string _photoFilename = null;
int i = 0;
using (MediaLibrary library = new MediaLibrary())
{
foreach (PictureAlbum album in library.RootPictureAlbum.Albums)
{
if (album.Name == "Saved Pictures")
{
_pictures = album.Pictures;
if(_pictures != null)
{
//search for the most recent pictures in the album with the correct file name
foreach (var p in _pictures.Reverse())
{
if (i >= 5)
return;
if (p.Name.Substring(0,7) == "TestApp")
{
i += 1;
using (IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication())
{
if (!storage.DirectoryExists(_photoPath))
{
storage.CreateDirectory(_photoPath);
}
//Update file name
_photoFilename = @"" + i.ToString();
if (storage.FileExists(_photoPath + @"\" + _photoFilename))
{
storage.DeleteFile(_photoPath + @"\" + _photoFilename);
}
//use p.GetImage() stream to save to IsolatedStorage with updated file name
//??
}
}
}
}
break;
}
}
}
}