我正在开发Windows Phone 8的应用程序,我需要从MediaLibrary中选择一张图片。我正在使用PhotoChooserTask,但PhotoResult没有关于图片的信息(如创建日期)。
我尝试使用File.GetCreationTime方法,但它给了我 UnauthorizedAccessException
目前,为了获取文件创建日期,我使用以下代码:
{
PhotoChooserTask chooserTask = new PhotoChooserTask();
chooserTask.Completed += (obj, result) =>
{
if (result.ChosenPhoto != null)
{
String fileName = Path.GetFileName(result.OriginalFileName);
String albumName = Path.GetFileName(
Path.GetDirectoryName(result.OriginalFileName));
//Get album by name
PictureAlbum album = MediaLib.RootPictureAlbum.Albums
.First(item => item.Name == albumName);
if (album != null)
{
//Get album picture by name
Picture picture = album.Pictures
.First(item => item.Name == fileName);
if (picture != null)
{
//Do Something
}
}
}
};
chooserTask.Show();
}
我的问题是,我们是否有更好的方法来获取此信息而不会迭代专辑中的所有(最坏情况)图片?或者我忘了设置一些功能 能够使用 File.GetCreationTime ?
好吧,手机专辑不会有数百万张照片要反复播放,但如果有直接的方式来获取这些信息我想知道。 :)
感谢
最诚挚的问候
答案 0 :(得分:0)
您应该查看EXIF数据。 EXIF数据是包含拍摄照片的GPS坐标,照片方向,拍摄日期等内容的元数据。
在NuGet中搜索ExifLib。它将为您添加一个Windows Phone兼容库,允许读取EXIF元数据。
此处有关该图书馆的信息:ExifLib - A Fast Exif Data Extractor for .NET 2.0+