从设备中选择所有图片,图像,保存的图片

时间:2013-07-25 06:31:02

标签: windows-phone-7 windows-phone-8 isolatedstorage media-library

我正在开发一个与图片,相册相关的应用程序。我要做的是从设备中选择所有照片,保存的照片,相册,相机胶卷并将其存储在List<Image>中。我找到了一个类,即 MediaLibrary ,但我无法理解如何选择所有这些图像并将其存储在列表中。

是否可以在列表中添加如下所有图片。

 private void btnSearchImages_Click_1(object sender, RoutedEventArgs e)
    {
        MediaLibrary m = new MediaLibrary();            

        foreach (var r in m.Pictures)
        {
            Stream imageStream = r.GetImage();
            List<Image> lstImageFromMediaLibrary = new List<Image>();
            var imageToShow = new Image()
            {
                Source = PictureDecoder.DecodeJpeg(r.GetImage())
            };

            lstImageFromMediaLibrary.Add(imageToShow);
        }        
    }

当我调试它时,我发现没有图像,即使相册中有8个默认图像。 m.Pictures 显示计数为零。如何从设备中选择所有这些图像并将其添加到列表中?

3 个答案:

答案 0 :(得分:0)

试试这个: -

MediaLibrary m = new MediaLibrary();

    foreach (var r in m.RootPictureAlbum.Pictures)
    {

    }

答案 1 :(得分:0)

我的列表中包含了所有图片。我刚刚从清单中添加ID_CAP_MEDIALIB_PHOTO已选中。(清单位于“属性”&gt;“WMAppManifest.xml&gt;功能”)

答案 2 :(得分:0)

代码中的一个明显问题是,您始终为每次迭代声明一个新列表。你应该这样做:

private void btnSearchImages_Click_1(object sender, RoutedEventArgs e)
{
    MediaLibrary m = new MediaLibrary();            

    List<Image> lstImageFromMediaLibrary = new List<Image>();

    foreach (var r in m.Pictures)
    {
        Stream imageStream = r.GetImage();

        var imageToShow = new Image()
        {
            Source = PictureDecoder.DecodeJpeg(r.GetImage())
        };

        lstImageFromMediaLibrary.Add(imageToShow);
    }        
}