Napisałem aplikację, która odczytuje podstawowe dane EXIF z obrazu za pośrednictwem klasy PropertyItems wyeksponowanej w klasie System.Drawing.Image .Net. Nie mogę jednak pobrać danych EXIF firmy Canon za pośrednictwem tych właściwości. Jak czytać te informacje? Wiem, że istnieje w pliku, tak jak czyta go Photoshop.C# Odzyskiwanie danych EXIF firmy Canon
Odpowiedz
Nie ma nic wbudowanego w BCL, które pomoże w EXIF.
Spójrz na this SO pytanie i odpowiedzi (Jaka jest najlepsza biblioteka EXIF dla .Net?). Istnieje kilka komercyjnych i otwartych bibliotek, które można wykorzystać do uzyskania danych EXIF.
Jeśli kompilujesz się z wersją 3 programu Framework (lub nowszą wersją), możesz załadować obrazy przy użyciu narzędzia BitmapSource
class, które udostępnia metadane EXIF za pośrednictwem Metadata
property. Zapewnia to znacznie bliższe połączenie z informacjami EXIF na zdjęciach, chociaż uwagi producenta są specyficzne i będą wymagały dalszego dekodowania.
Znalazłem to jakiś czas temu, ale jeszcze go nie używałem. Wyglądało na to, że ma informacje dotyczące konkretnego producenta.
http://renaud91.free.fr/MetaDataExtractor/
UPDATE:
Projekt metadanych wyciąg był żywy i dobrze od 2002 do Java, i jest teraz dostępny dla .NET. Posiada wszechstronne wsparcie makernotes firmy Canon, jak również aparatów i skanerów firmy Agfa, Casio, Epson, Fujifilm, Kodak, Kyocera, Leica, Minolta, Nikon, Olympus, Panasonic, Pentax, Sanyo, Sigma/Foveon oraz Sony.
Możesz przeglądać przykładowe wyjście dla kilku zdjęć z kamery Canon (i innych) tutaj.
Biblioteka jest dostępna za pośrednictwem NuGet lub GitHub.
wykorzystanie próbki:
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}");
}
zobaczyć zaktualizowaną odpowiedź tutaj: C# Retrieve Canon Specific EXIF Data
Jeśli są pliki RAW, można try using dcraw.net, aby uzyskać informacje na zewnątrz.
Kilka miesięcy temu napisałem narzędzie kryminalistyczne w języku C# i użyłem EXIF Tool Phila Harveya do uzyskania danych EXIF ze zdjęć. Tak, jest to biblioteka PERL, ale była naprawdę łatwa do zainstalowania i zintegrowania z moją aplikacją C#.
Projekt meta-ekstraktor był żywy i dobrze od 2002 roku dla Java i jest już dostępny dla .NET. Posiada wszechstronne wsparcie makernotes firmy Canon, jak również aparatów i skanerów firmy Agfa, Casio, Epson, Fujifilm, Kodak, Kyocera, Leica, Minolta, Nikon, Olympus, Panasonic, Pentax, Sanyo, Sigma/Foveon oraz Sony.
Można przeglądać przykładowe wyjście dla kilku zdjęć z aparatu Canon (i innych) here.
Biblioteka jest dostępna pod numerem NuGet lub GitHub.
wykorzystanie próbki:
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}");
}
Zauważ, że lib w Mark Redman's answer jest przestarzały port mojej biblioteki Java od wielu lat temu. Teraz utrzymuję zarówno projekty C#, jak i Java, aby mieć parzystość funkcji.
- 1. Odzyskiwanie danych z modemu Bootstrap
- 2. Pozbycie się wszystkich danych Exif w Objective-C
- 3. Odzyskiwanie danych z mongodb za pomocą C# sterownika
- 4. C# - Odzyskiwanie właściwości komponentu COM +?
- 5. Nieoczekiwany systemu .__ Canon z refleksji
- 6. ImageIO - uzyskać typ obrazu i danych EXIF
- 7. Manipulowanie obrazem bez usuwania jego danych EXIF
- 8. Odzyskiwanie nazw MySQL, gdzie typ danych == X
- 9. .NET C# biblioteki do bezstratnego przepisywania Exif?
- 10. Dodawanie informacji EXIF do obrazów w C#
- 11. Swift z dostępem do EXIF Słownik
- 12. Odzyskiwanie bazy danych mysql z kopii zapasowej folderu danych
- 13. Odzyskiwanie wartości DateTime z DataRow (C#)
- 14. C#: Odzyskiwanie nazw instalowanych wygaszaczy ekranu
- 15. MonoDroid: Nieobsługiwane odzyskiwanie wyjątków
- 16. Przyciąganie obrazów z Windows C# Canon SDK vs PTP lub MTP
- 17. SVN - Odzyskiwanie przydatnych informacji
- 18. Usuń dane EXIF z obrazu
- 19. Edytowanie/usuwanie danych Exif Image w systemie Windows Phone
- 20. EXIF z int8Array
- 21. Biblioteka do czytania Exif
- 22. C# biblioteki, aby wyodrębnić obiektywu Marka/model z danych EXIF w JPG
- 23. odzyskiwanie jednej wartości z bazy danych przy użyciu php
- 24. Ładowanie danych przez linie Hive, S3, EMR i odzyskiwanie partycji
- 25. odzyskiwanie z git rebase
- 26. Odzyskiwanie złamany repozytorium git
- 27. Odzyskiwanie nazwy klasy tablicy
- 28. Lepsze odzyskiwanie Vima?
- 29. Odzyskiwanie klamek okiennych Delphi
- 30. Jak mogę wyodrębnić dane EXIF za pomocą PerlMagick?
Mogę to sprawdzić cudownie! Wielu producentów przechowuje większość użytecznych danych Exif w polu "Makernote". To narzędzie analizuje wszystko w małym, przyjaznym dla XML słowniku pełnym tagów Exif. – glenneroo
To jest nieaktualny port mojego projektu _metadata-extractor_. Obecnie utrzymuję oficjalną wersję C#, która ma więcej funkcji i wiele poprawek. Zobacz [moja odpowiedź] (http://stackoverflow.com/a/32771543/24874), aby uzyskać więcej informacji. –