사진

2014-12-12 6 views
2
내가 ExifLib를 사용하여 사진의 EXIF ​​정보를 읽을 수

에서 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(); 
} 

을 EXIF ​​정보를 얻을 위해 내가 PhotoChooserTaskphotoChooserTask.Completed += (s, e) => {PhotoConverter.GetMetaData(e);} 및 방법을 사용했기 때문에 마무리가 잘 작동하지만,있다 문제는 내가 전화의 갤러리에서 사진을 공유하고 싶을 때입니다. 사진을 얻을 내 방법은 그래서이

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

답변

1

확인을 읽고, 나는 쉬운 방법을 찾을 수

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); 
} 

스트림을 추가 MediaLiblary와 장소에

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); 
}