2010-04-25 13 views
5

ho scritto un app che legge i dati di base EXIF ​​da un'immagine tramite i PropertyItems esposti in classe System.Drawing.Image di .Net. Tuttavia, non riesco a recuperare i dati EXIF ​​specifici di Canon tramite queste proprietà. Come si legge questa informazione? So che esiste nel file, come lo legge Photoshop.C# Recupera Canon specifici dati EXIF ​​

risposta

1

Non c'è nulla di integrato nel BCL che possa essere d'aiuto con EXIF.

Vedere this DOMANDA E le risposte (Qual è la migliore libreria EXIF ​​per .Net?). Esistono diverse librerie commerciali e open source che è possibile utilizzare per ottenere dati EXIF.

2

Se si sta eseguendo la compilazione di v3 del Framework (o versioni successive), è possibile caricare le immagini utilizzando lo BitmapSource class, che espone i metadati EXIF ​​tramite Metadata property. Ciò fornisce una connessione molto più vicina alle informazioni EXIF ​​nelle immagini, sebbene le note del produttore siano specifiche e necessitino di ulteriore decodifica.

3

L'ho trovato qualche tempo fa ma non l'ho ancora usato. Sembrava che avesse informazioni specifiche del produttore.

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

UPDATE:

Il progetto metadati-estrattore è stato vivo e vegeto a partire dal 2002 per Java, ed è ora disponibile per .NET. Ha un supporto completo per i makernote Canon e per quelli delle fotocamere e scanner Agfa, Casio, Epson, Fujifilm, Kodak, Kyocera, Leica, Minolta, Nikon, Olympus, Panasonic, Pentax, Sanyo, Sigma/Foveon e Sony.

È possibile sfogliare esempio di output per diversi Canon (e altre) le immagini delle telecamere qui.

La libreria è disponibile tramite NuGet o GitHub.

utilizzo Esempio:

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}"); 
} 

vedere una risposta aggiornata qui: C# Retrieve Canon Specific EXIF Data

+1

Posso verificare che funzioni meravigliosamente! Molti produttori memorizzano la maggior parte degli utili dati Exif nel campo 'Makernote'. Questo strumento analizza tutto ciò in un simpatico dizionario XML-friendly pieno di tag Exif. – glenneroo

+0

Questa è una porta obsoleta del mio progetto _metadata-extractor_. Ora mantengo una versione C# ufficiale che ha più funzioni e molte correzioni di bug. Vedi [la mia risposta] (http://stackoverflow.com/a/32771543/24874) per maggiori informazioni. –

0

ho scritto uno strumento legale a pochi mesi fa in C# e utilizzati Phil Harvey EXIF Tool per ottenere i dati EXIF ​​dalle fotografie. Sì, è una libreria PERL ma è stato davvero facile da installare e integrare nella mia applicazione C#.

1

Il progetto metadata-extractor è vivo e vegeto dal 2002 per Java ed è ora disponibile per .NET. Ha un supporto completo per i makernote Canon e per quelli delle fotocamere e scanner Agfa, Casio, Epson, Fujifilm, Kodak, Kyocera, Leica, Minolta, Nikon, Olympus, Panasonic, Pentax, Sanyo, Sigma/Foveon e Sony.

È possibile sfogliare esempio di output per diversi Canon (e altre) le immagini della fotocamera here.

La libreria è disponibile tramite NuGet o GitHub.

utilizzo Esempio:

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}"); 
} 

Si noti che la lib in Mark Redman's answer è una porta obsoleta della mia libreria Java da molti anni fa. Ora mantengo sia il progetto C# che Java per avere la parità di funzionalità.

Problemi correlati