0
我想从Windows Phone 8的照片库中获取图像。并且第一次它工作正常。我从相机卷文件夹第一次,但是当我试图从相册中的图片保存的图片抛出内存异常..我不明白为什么会发生这种情况。任何帮助表示赞赏。内存不足的异常..在Windows Phone 8
MediaImage mediaImage = new MediaImage();
BitmapImage image;
private void Panorama_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
{
Panorama obj = sender as Panorama;
PanoramaItem objPanoramaItem = (PanoramaItem)obj.SelectedItem;
string FolderName = objPanoramaItem.Header.ToString();
PictureAlbum AlbumFolder = allAlbums.Where(album => album.Name == FolderName).FirstOrDefault();
if (FolderName == "Camera Roll")
{
if (ImageListCameraRoll == null)
{
ImageListCameraRoll = new ObservableCollection<MediaImage>();
var CameraRollPictures = AlbumFolder.Pictures;
foreach (var picture in CameraRollPictures)
{
mediaImage = new MediaImage();
image = new BitmapImage();
image.SetSource(picture.GetImage());
mediaImage.ImageFile = image;
mediaImage.ImageName = picture.Name;
ImageListCameraRoll.Add(mediaImage);
}
}
ListboxCameraRoll.ItemsSource = ImageListCameraRoll;
}
if (FolderName == "Saved Pictures1")
{
if (ImageListSavedPictures == null)
{
ImageListSavedPictures = new ObservableCollection<MediaImage>();
var SavedPictures = AlbumFolder.Pictures;
foreach (var picture in SavedPictures)
{
mediaImage = new MediaImage();
image = new BitmapImage();
image.SetSource(picture.GetImage());
mediaImage.ImageFile = image;
mediaImage.ImageName = picture.Name;
ImageListSavedPictures.Add(mediaImage);
}
}
ListboxSavedPictures.ItemsSource = ImageListSavedPictures;
}
}
我在这里做的是试图让全景物品更改事件的图片。 Panorama项目基于照片库中的不同文件夹..
对专辑API不是很熟悉,但是在我看来,您似乎将文件夹中所有图像的全分辨率版本加载到内存中。这就是你要做的,因为如果文件夹很大,它可能需要相当多的内存。 –
so thr any other way..like compress or something – loop
你在哪一行出错? –