有一种更好的方法来获取Windows Phone上的图片信息?

时间:2013-12-07 07:30:26

标签: c# .net windows-phone-8

我正在开发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

好吧,手机专辑不会有数百万张照片要反复播放,但如果有直接的方式来获取这些信息我想知道。 :)

感谢
最诚挚的问候

1 个答案:

答案 0 :(得分:0)

您应该查看EXIF数据。 EXIF数据是包含拍摄照片的GPS坐标,照片方向,拍摄日期等内容的元数据。

在NuGet中搜索ExifLib。它将为您添加一个Windows Phone兼容库,允许读取EXIF元数据。

此处有关该图书馆的信息:ExifLib - A Fast Exif Data Extractor for .NET 2.0+