2012-12-05 32 views

回答

1

我使用ExifLib從這篇文章http://igrali.com/2011/11/01/reading-and-displaying-exif-photo-data-on-windows-phone/不會對Lumia 800的和710的任何問題,試試吧。如果您想獲取照片的位置,請確保您已將gps信息添加到在設置中啓用的照片。

+0

謝謝伊戈爾。實際上,我幾個月前已經創建了名爲「Picture Info」的Windows Phone應用程序,但是Date採集的數據仍然存在問題。我使用了Tim的ExifLib。最後,你會嘗試使用我的應用程序,並找到你是否得到「Date taken」字段? –

+0

我使用過Tim的ExifLib。最後,你會嘗試使用我的應用程序,並找到你是否得到「Date taken」字段?我有Lumia 800,它不適用於這個領域。 –

+0

@SpasoLazarevic當然,將xap發送給igor(at)kulman.sk,我將在Lumia 800上進行測試 –

1

您應該使用ExifLib。不幸的是,它不需要100%適應WP,所以需要更多的工作。

1)下載ExifLib ZIP,將其解壓縮,解鎖DLL(右鍵單擊 - >屬性 - >解除阻止),並從項目中添加對其的引用。與此同時,我在服務器上託管了郵政編碼@http://JustinAngel.net/Storage/ExifLib.zip

2)接下來,您必須創建一個可在Windows Phone中使用的入口函數。這是我使用的一個:

public class ExifReaderEx : ExifReader 
{ 
    protected ExifReaderEx(Stream stream) 
     : base(stream) 
    { 
    } 

    public static JpegInfo ReadJpeg(Picture picture) 
    { 
     Stream FileStream = null; 
     try 
     { 
      FileStream = picture.GetImage(); 
     } 
     catch 
     { 
      return null; 
     } 

     DateTime now = DateTime.Now; 
     ExifReaderEx reader = new ExifReaderEx(FileStream); 
     reader.info.FileSize = (int)FileStream.Length; 
     reader.info.FileName = string.Format("{0}.jpg", "fileName"); 
     reader.info.LoadTime = (TimeSpan)(DateTime.Now - now); 
     return reader.info; 
    } 
} 

3)通過調用ExifReaderEx.ReadJpeg(myPicture)調用該代碼。例如,下面的代碼片段將返回包含所有元數據的Exif項目列表:

  var items = 
       new MediaLibrary().Pictures 
        .Select(picture => ExifReaderEx.ReadJpeg(picture)) 
        .Where(exif => exif != null) 
        .ToList();