2016-10-18 6 views
0

Ich verwendete https://www.nuget.org/packages/ExifLib.PCL/ Bibliothek, vor dem Update.Xamarin mac 2.10 kompatible Exif-Bibliothek

Ich bin diese Bibliothek nicht in der Lage jetzt zu nutzen:

nicht Paket installieren kann 'ExifLib.PCL 1.0.1'. Sie versuchen, dieses Paket in ein Projekt zu installieren, das 'Xamarin.Mac, Version = v2.0' zielt, aber das Paket enthält keine Assemblyverweise oder Inhaltsdateien, die mit dem Framework kompatibel sind. Wenden Sie sich an den Autor des Pakets, um weitere Informationen zu erhalten.

Irgendwelche Alternative?

verwende ich Exif Bibliothek Bildaufnahmedatum zu erhalten:

using (var stream = File.Open (filePath, FileMode.Open)) { 
       var ein=new CGImagePropertiesExif(); 
       var jpegInfo = ExifReader.ReadJpeg (stream); 
       if (jpegInfo.DateTimeOriginal != null) { 
        takenDate = DateTime.ParseExact (jpegInfo.DateTimeOriginal, "yyyy:MM:dd HH:mm:ss", null); 
       } 
      } 

dieser Code beendet Anwendung kann auch keine Ausnahmen gesehen :(

, wenn ich nur Mock Datetime, wie folgt aus:

static DateTime GetMyImageTakenDate (NSUrl url) 
     { 
      DateTime takenDate = DateTime.Today; 

      using (var stream = File.Open (url.Path, FileMode.Open)) { 

       takenDate = DateTime.ParseExact (DateTime.Now.ToString ("yyyy:MM:dd HH:mm:ss"), "yyyy:MM:dd HH:mm:ss", null); 
      } 
      return takenDate; 
     } 

Anwendung funktioniert:/

+0

Versuchen Sie, die Pre-Release-Version: 'ExifLib.PCL 1.0.2-pre01' Es wurde aktualisiert, um Unterstützung .netstandard 1.0 – SushiHangover

+0

thaaanks :)) es funktioniert. – Nininea

+0

aber ich habe immer noch ein Problem, verwende ich exif lib, um Bild aufgenommen Datum var jpegInfo = ExifReader.ReadJpeg (Stream); \t \t \t \t if (jpegInfo.DateTimeOriginal! = Null) { \t \t \t \t \t takenDate = DateTime.ParseExact (jpegInfo.DateTimeOriginal, "yyyy: MM: dd HH: mm: ss", null); \t \t \t \t} es beendet Anwendung :( – Nininea

Antwort

0

Ihr Code gut für mich funktioniert:

var filePath = "/Users/sushi/Desktop/img_1771.jpg"; 
using (var stream = File.Open(filePath, FileMode.Open)) 
{ 
    var jpegInfo = ExifReader.ReadJpeg(stream); 
    if (jpegInfo.DateTimeOriginal != null) 
    { 
     var takenDate = DateTime.ParseExact(jpegInfo.DateTimeOriginal, "yyyy:MM:dd HH:mm:ss", null); 
     Console.WriteLine(takenDate); 
    } 
} 

Ausgang:

12/14/2003 12:01:44 PM 

Verwendung:

Xamarin.Mac Version: 2.10.0.105 
ExifLib.PCL Version: 1.0.2-pre01 
+0

Dieser Code ist in Modal verwenden. Hier ist Hauptprozess, ich sollte Datum beim Hochladen von Informationen genommen werden und sollte auch Bild in meinem Verzeichnis kopieren, ohne zu bekommen Wenn ich versuche, ein Datum zu erhalten, funktioniert die Anwendung nicht mehr, aber sie gibt alle Zeilen aus, verursacht keine Ausnahme. – Nininea

+0

@Nininea Sie müssen Zeile für Zeile durch den Code gehen und bestimmen, welche Zeile den Absturz verursacht (oder ist die Anwendung gerade normal beenden?) – SushiHangover

+0

Ich kenne Debugging, aber es ist kein einfacher Fall.ohne Datum aus dem Exit nur Modal ist geschlossen (wie erwartet), aber wenn ich diesen Code hinzugefügt, was ich schrieb alle Zeilen wird innerhalb Dateiupload-Methode ausgeführt und als Anwendung beendet wird (es sollte nicht so sein) – Nininea