2008-10-10 19 views
2

Étant donné un nom de fichier, je dois pouvoir accéder à certaines métadonnées d'une image pour un projet (source fermée) que je développe actuellement, sans tenir compte de la façon dont les métadonnées sont stocké (c'est-à-dire Exif, IPTC ou XMP). En particulier, je veux accéder aux données de géolocalisation.Obtenir des métadonnées d'image dans .NET sans tenir compte du format des métadonnées

Y a-t-il un moyen de le faire sans nécessitant des assemblages tiers ou des bibliothèques (c'est-à-dire est-ce faisable avec stock Microsoft .NET) et comment cela serait-il fait? Ou suis-je coincé avec beaucoup de P/Invoquant WIC?

Répondre

3

Vérifiez le FreeImage project - un chargement d'image C++ et le traitement qui a l'encapsuleur .NET. peut-être il peut le faire

2

Vieille question, je sais, mais EXIF ​​peut être extrait avec juste le framework .NET de base (pas de DLL tiers). Les éléments EXIF ​​peuvent être extraits d'un objet Image en tant que PropertyItems. J'utilise une méthode similaire à celle d'extraire une propriété particulière comme une chaîne (par exemple, date de prise ou Maker Note):

public static string GetEXIFInfo(System.Drawing.Image img, int propertyItem) { 
    return new ASCIIEncoding().GetString(img.GetPropertyItem(propertyItem).Value); 
} 

Et voici une liste des valeurs de PropertyItem vous pouvez utiliser pour obtenir différentes valeurs EXIF: http://msdn.microsoft.com/en-us/library/ms534416%28VS.85%29.aspx