从照片中获取Exif信息



我想使用 ExifLib 从照片中读取 exif 信息,第一种方法已经完成,因为我使用了PhotoChooserTaskphotoChooserTask.Completed += (s, e) => {PhotoConverter.GetMetaData(e);}和获取EXIF信息的方法

public static void GetMetaDate(PhotoResult e)
{     
    ExifLib.JpegInfo info = ExifLib.ExifReader.ReadJpeg(e.ChosenPhoto);
    var img = new BitmapImage();
    img.SetSource(e.ChosenPhoto);
    App.MainViewModel.MetaDate = ReadExif(info);
}
private static string ReadExif(JpegInfo info)
{
    JsonObject metaDate = new JsonObject();
    metaDate.Add("FNumber", info.FNumber);
    return metaDate.ToString();
}

它的工作很棒,但问题是当我想分享手机图库中的图片时。我获取图片的方式是这样的

if (queryStrings.ContainsKey("FileId"))
{
     MediaLibrary library = new MediaLibrary();
     Picture photoFromLibrary = library.GetPictureFromToken(queryStrings["FileId"]);
     BitmapImage bitmapFromPhoto = new BitmapImage();
     bitmapFromPhoto.SetSource(photoFromLibrary.GetImage());
}

那么,我应该如何更改我的 GetMetaDate 以读取photoFromLibrary.GetImage

好的,我找到简单的方法

public static void GetMetaData(Stream photo)//change to stream
{
    ExifLib.JpegInfo info = ExifLib.ExifReader.ReadJpeg(photo);
    var img = new BitmapImage();
    img.SetSource(photo);
    App.MainViewModel.MetaDate = ReadExif(info);
}

并与媒体Liblary一起添加流

if (queryStrings.ContainsKey("FileId"))
{
     // Retrieve the photo from the media library using the FileID passed to the app.
     MediaLibrary library = new MediaLibrary();
     Picture photoFromLibrary = library.GetPictureFromToken(queryStrings["FileId"]);
     //Get metadate
     Stream stream = photoFromLibrary.GetImage();
     PhotoConverter.GetMetaData(stream);
}

相关内容

  • 没有找到相关文章