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
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.
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.
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
Wenn sie RAW-Dateien sind, könnten Sie try using dcraw.net die Informationen zu erhalten.
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.
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.
- 1. C# Canon SDK: Kein Rückruf nach CameraCommand_TakePicture
- 2. C# retrieve gespeicherte Prozedur führt
- 3. Canon EDSDK MemoryStream Bild
- 4. Strange System .__ Canon Ausnahme
- 5. Retrieve Array von Delphi DLL mit C#
- 6. unerwartetes System .__ Canon mit Reflexion
- 7. Bessere .NET SDK-Unterstützung - Canon oder Nikon?
- 8. Retrieve ein Update in Plugin
- 9. IOS: Retrieve SMS Geschichte
- 10. Retrieve POST JSON Antwort
- 11. Retrieve asp.net Mitgliedschaft Sicherheitsantwort
- 12. FakeItEasy - Retrieve Faked Objekt
- 13. C++ Polymorphismus und spezifische Methoden
- 14. Broadcast IP Canon xf200 Kamera mit RTSP
- 15. Abrufen von Bildern von Canon-Kamera mit EDSDK 2.9
- 16. CheckedListBox Retrieve Artikel zum Wörterbuch WinForms ausgewählt C#
- 17. Angular 2 retrieve ausgewählte Kontrollkästchen
- 18. Retrieve DataRow nach get sql
- 19. RNG Samen Retrieve in julia
- 20. Kind img src Retrieve (jQuery)
- 21. Method einer # Funktion F Retrieve
- 22. PHP-Retrieve Inhalt von Seite
- 23. Retrieve Antwort-ID in PHP
- 24. Retrieve Lat und lange Javascript
- 25. Retrieve verwandten Beitrag mit codenigniter
- 26. Spezifische Querverbindungsabfrage
- 27. Clang Performance-Drop für spezifische C++ Zufallszahlengenerierung
- 28. Spezifische Fragen zu C# Dispose Pattern
- 29. C++ Cast spezifische Paare von Enums
- 30. Durchsuchen von Bildern auf SD-Karte über Canon EOS SDK (C++)
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
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. –