【问题标题】:There is a better way to get picture information on Windows Phone?有没有更好的方法在 Windows Phone 上获取图片信息?
【发布时间】:2013-12-07 07:30:25
【问题描述】:

我正在为 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吗?

好吧,手机相册不会有数百万张照片可供迭代,但如果存在直接获取此信息的方法,我想知道。 :)

谢谢
最好的问候

【问题讨论】:

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


    【解决方案1】:

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

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

    关于该库的信息在这里:ExifLib - A Fast Exif Data Extractor for .NET 2.0+

    【讨论】:

    • 我知道这个库,但是一旦我只想要创建日期,现在我想知道我是否可以在没有库的情况下做到这一点。但它似乎是从 Windows Phone 上的图片中提取更多信息的唯一方法。谢谢。
    • 我将这个ExifLib 用于 WP。
    猜你喜欢
    • 2011-10-11
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多