我正在开发一个与图片,相册相关的应用程序。我要做的是从设备中选择所有照片,保存的照片,相册,相机胶卷并将其存储在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 显示计数为零。如何从设备中选择所有这些图像并将其添加到列表中?
答案 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);
}
}