2010-05-06 9 views
1

J'utilise Windows Imaging Component pour lire/écrire des métadonnées d'image dans mon application WPF. Je voudrais savoir s'il existe un moyen efficace de savoir si des chemins existent dans un espace de noms. Par exemple, je voudrais savoir s'il existe des chemins dans l'espace de noms IPTC et sinon je veux supprimer l'espace de noms de l'en-tête de l'image.Comment itérer tous les chemins de requête dans un espace de noms d'en-tête d'image dans WIC?

Tous les pointeurs seraient grandement appréciés.

Merci,

Murugesh. Obtenir un objet IWICMetadataQueryReader et utiliser sa méthode GetEnumerator.

Répondre

2

Avec l'objet IEnumString renvoyé à partir de GetEnumerator, appelez sa méthode Next pour voir si au moins une métadonnée existe. Si ce n'est pas le cas, le bloc de métadonnées est vide. Essayer d'atteindre l'espace de noms IPTC à partir du lecteur de requête racine peut être un peu plus compliqué: la racine peut faire référence à l'espace de noms IPTC (bloc de métadonnées) en tant qu'objet COM unique assis à la racine, puis vous devez déterminer le type (interface) de cet objet COM et descendre dans celui-ci, un peu comme explorer un arbre.

Je pense qu'il n'est généralement pas possible de contrôler WIC quelles métadonnées pas pour écrire, comme WIC est libre d'insérer son propre matériel tant que considéré inoffensif.