2010-04-25 3 views
5

Ich habe eine App geschrieben, die die grundlegenden EXIF-Daten aus einem Bild über die PropertyItems liest, die in der System.Drawing.Image-Klasse von .Net verfügbar sind. Über diese Eigenschaften kann ich jedoch keine Canon-spezifischen EXIF-Daten abrufen. Wie liest man diese Informationen? Ich weiß, dass es in der Datei existiert, wie Photoshop es liest.C# Retrieve Canon Spezifische EXIF-Daten

Antwort

1

Es ist nichts in den BCL eingebaut, das mit EXIF ​​helfen kann.

Schauen Sie sich this SO Frage und die Antworten (Was ist die beste EXIF-Bibliothek für. Net?). Es gibt mehrere kommerzielle und Open-Source-Bibliotheken, die Sie verwenden können, um EXIF-Daten zu erhalten.

2

Wenn Sie mit v3 des Framework (oder höher) kompilieren, können Sie die Images mit der BitmapSource class laden, wodurch die EXIF-Metadaten über die Metadata property verfügbar gemacht werden. Dies ergibt eine viel engere Verbindung zu den EXIF-Informationen in den Bildern, obwohl die Hersteller-Notizen spezifisch sind und eine weitere Decodierung benötigen.

3

Ich habe das vor einer Weile gefunden, habe es aber noch nicht benutzt. Es sah so aus, als hätte es herstellerspezifische Informationen.

http://renaud91.free.fr/MetaDataExtractor/

UPDATE:

Die Metadaten-Extraktor Projekt seit 2002 lebendig und gut war für Java und ist für .NET jetzt verfügbar. Es bietet umfassende Unterstützung für Canon-Makernotes sowie für Kameras und Scanner von Agfa, Casio, Epson, Fujifilm, Kodak, Kyocera, Leica, Minolta, Nikon, Olympus, Panasonic, Pentax, Sanyo, Sigma/Foveon und Sony.

Sie können die Beispielausgabe für mehrere Canon (und andere) Kamerabilder hier durchsuchen.

Die Bibliothek ist über NuGet oder GitHub verfügbar.

Verwendungsbeispiel:

IEnumerable<Directory> directories = ImageMetadataReader.ReadMetadata(path); 

foreach (var directory in directories) 
foreach (var tag in directory.Tags) 
{ 
    Console.Out.WriteLine($"{directory.Name} - {tag.TagName} = {tag.Description}"); 
} 

eine aktualisierte Antwort siehe hier: C# Retrieve Canon Specific EXIF Data

+1

Ich kann bestätigen, das funktioniert wunderbar! Viele Hersteller speichern die meisten nützlichen Exif-Daten im Feld "Makernote". Dieses Tool analysiert all das in ein kleines XML-freundliches Wörterbuch voller Exif-Tags. – glenneroo

+0

Dies ist ein veralteter Port meines Projekts _metadata-extractor_. Ich führe jetzt eine offizielle C# Version, die mehr Funktionen und viele Bugfixes hat. Siehe [meine Antwort] (http://stackoverflow.com/a/32771543/24874) für weitere Informationen. –

0

Ich schrieb ein forensisches Werkzeug vor ein paar Monaten in C# und benutzte Phil Harveys EXIF Tool, um die EXIF-Daten von Fotos zu erhalten. Ja, es ist eine PERL-Bibliothek, aber es war wirklich einfach zu installieren und in meine C# -Anwendung zu integrieren.

1

Die Metadaten-Extraktor Projekt ist seit 2002 lebendig und gut für Java, und ist jetzt für .NET verfügbar. Es bietet umfassende Unterstützung für Canon-Makernotes sowie für Kameras und Scanner von Agfa, Casio, Epson, Fujifilm, Kodak, Kyocera, Leica, Minolta, Nikon, Olympus, Panasonic, Pentax, Sanyo, Sigma/Foveon und Sony.

Sie können die Beispielausgabe für mehrere Canon (und andere) Kamerabilder here durchsuchen.

Die Bibliothek ist über NuGet oder GitHub verfügbar.

Verwendungsbeispiel:

IEnumerable<Directory> directories = ImageMetadataReader.ReadMetadata(path); 

foreach (var directory in directories) 
foreach (var tag in directory.Tags) 
{ 
    Console.Out.WriteLine($"{directory.Name} - {tag.TagName} = {tag.Description}"); 
} 

Beachten Sie, dass die lib in Mark Redman's answer ist eine veraltete Port meiner Java-Bibliothek von vor vielen Jahren. Ich behalte jetzt sowohl die C# - als auch die Java-Projekte, um Feature-Parität zu haben.