Ajouter ou supprimer des métadonnées XMP personnalisées de GIF à l'aide de C#

Les métadonnées XMP (Extensible Metadata Platform) sont codées sous forme de texte au format XML. Le modèle de données XMP défini peut être utilisé pour stocker n’importe quel ensemble de propriétés de métadonnées sous la forme d’une paire nom/valeur. Vous pouvez ajouter un package de métadonnées XMP personnalisé à vos images par programmation. Dans cet article, vous apprendrez comment ajouter ou supprimer des métadonnées XMP personnalisées de GIF à l’aide de C#.

Les sujets suivants sont abordés/couverts dans cet article:

API C# pour ajouter ou supprimer des métadonnées XMP

J’utiliserai l’API GroupDocs.Metadata for .NET pour ajouter ou supprimer un package de métadonnées XMP personnalisé. Il vous permet d’ajouter, de modifier, de récupérer et de supprimer des propriétés de métadonnées à partir de documents et de formats de fichiers image. L’API fonctionne avec les normes de métadonnées les plus notables telles que les propriétés de métadonnées intégrées, XMP, EXIF, IPTC, Image Resource Blocks, ID3 et personnalisées. Il peut être utilisé pour développer des applications dans n’importe quel environnement de développement qui cible la plate-forme .NET.

Vous pouvez soit télécharger la DLL de l’API, soit l’installer à l’aide de NuGet.

Install-Package GroupDocs.Metadata

Ajouter un package de métadonnées XMP personnalisé au GIF à l’aide de C#

Vous pouvez facilement créer et ajouter un package XMP entièrement personnalisé contenant des propriétés définies par l’utilisateur en suivant les étapes simples mentionnées ci-dessous:

  • Créer une instance de la classe Metadata
  • Indiquez le chemin de l’image GIF
  • GetRootPackage as IXmp standard
  • Créer une instance de la classe XmpPackage
  • Fournissez le préfixe du package et l’URI de l’espace de nom
  • Définissez les propriétés dans la paire nom/valeur à l’aide de la méthode Set
  • Créer une instance de la classe XmpPacketWrapper
  • Appelez la méthode AddPackage et transmettez le XmpPackage créé
  • Attribuez XmpPacketWrapper créé à IXMp.XmpPackage
  • Enregistrez le fichier de sortie à l’aide de la méthode Metadata.Save

L’exemple de code suivant montre comment créer et ajouter un package de métadonnées XMP personnalisé à une image GIF à l’aide de C#.

using (Metadata metadata = new Metadata(@"C:\Files\xmp.gif")) {

  IXmp root = (IXmp)metadata.GetRootPackage();
  XmpPacketWrapper packet = new XmpPacketWrapper();

  XmpPackage custom = new XmpPackage("gd", "https://groupdocs.com");
  custom.Set("gd:Copyright", "Copyright (C) 2021 GroupDocs. All Rights Reserved.");
  custom.Set("gd:CreationDate", DateTime.Now.ToString());
  custom.Set("gd:Company", XmpArray.From(new String[] { "Aspose", "GroupDocs" }, XmpArrayType.Ordered));

  packet.AddPackage(custom);
  root.XmpPackage = packet;
  metadata.Save(@"C:\Files\xmp_output.gif");
}

L’exemple de code ci-dessus doit ajouter le package de métadonnées XMP à l’image d’entrée. L’ExifTool lit les métadonnées suivantes à partir de l’image GIF de sortie générée.

Ajouter le package de métadonnées XMP au GIF à l'aide de C#

Ajouter le package de métadonnées XMP au GIF à l’aide de C #

L’interface IXMP expose la propriété XmpPackage{.broken_link} pour obtenir ou définir le package de métadonnées XMP.

La classe Metadata fournit la méthode GetRootPackage pour obtenir le package racine qui donne accès à toutes les propriétés de métadonnées extraites du fichier.

La classe XmpPackage fournit diverses propriétés pour définir le package, telles que Prefix, NamespaceUri et Keys. Cette classe fournit également des méthodes Set pour définir le nom/la valeur des propriétés de métadonnées définies par l’utilisateur.

La classe XmpPacketWrapper contient un package XMP sérialisé. La méthode AddPackage de cette classe permet d’ajouter le package personnalisé défini.

Vous pouvez trouver plus de détails sur “Travailler avec les métadonnées XMP” dans la documentation.

Lire les propriétés de métadonnées de package XMP personnalisées à l’aide de C

Vous pouvez facilement lire toutes les propriétés définies par l’utilisateur du package XMP personnalisé en suivant les étapes simples mentionnées ci-dessous:

  • Créer une instance de la classe Metadata
  • Indiquez le chemin de l’image GIF
  • GetRootPackage as IXmp standard
  • Obtenez tous les packages un par un depuis IXmp.XmpPackage.Packages
  • Obtenez NamespaceUri et Prefix pour chaque package
  • Appelez FindProperties pour chaque clé de package pour obtenir le nom et la valeur de la propriété

L’exemple de code suivant montre comment lire toutes les propriétés définies dans le package XMP personnalisé à l’aide de C#.

string file = @"C:\Files\xmp_output.gif";
using (Metadata metadata = new Metadata(file)) 
{
  IXmp root = (IXmp)metadata.GetRootPackage();

  if (root.XmpPackage != null)
  {
    foreach (var package in root.XmpPackage.Packages)
    {
      Console.WriteLine(package.NamespaceUri);
      Console.WriteLine(package.Prefix);

      foreach(var keys in package.Keys)
      {
        var property = package.FindProperties(p => p.Name == keys).FirstOrDefault();
        Console.WriteLine(property.Name + ": " + property.Value);
      }
    }
  }
}

L’exemple de code ci-dessus doit produire la sortie suivante:

https://groupdocs.com
gd
gd:Copyright: Copyright (C) 2021 GroupDocs. All Rights Reserved.
gd:CreationDate: 04/05/2021 2:26:17 am
gd:Company: <rdf:Seq><rdf:li>Aspose</rdf:li><rdf:li>GroupDocs</rdf:li></rdf:Seq>

La méthode FindProperties de la classe XmpPackage recherche et trouve de manière récursive les propriétés de métadonnées satisfaisant le prédicat spécifié.

Supprimer le package XMP personnalisé à l’aide de C#

Vous pouvez supprimer le package XMP des images GIF en suivant les étapes simples mentionnées ci-dessous:

L’exemple de code suivant montre comment supprimer le package de métadonnées XMP d’une image GIF à l’aide de C#.

using (Metadata metadata = new Metadata(@"C:\Files\xmp_output.gif"))
{
  IXmp root = (IXmp)metadata.GetRootPackage();
  root.XmpPackage = null;
  metadata.Save(@"C:\Files\xmp_output_Removed.gif");
}

L’exemple de code ci-dessus doit supprimer le package de métadonnées XMP de l’image d’entrée. L’ExifTool lit les métadonnées suivantes à partir de l’image GIF de sortie générée.

Supprimer le package de métadonnées XMP de GIF à l'aide de C#

Supprimer le package de métadonnées XMP de GIF à l’aide de C #

Obtenez une licence gratuite

Vous pouvez essayer l’API sans limitation d’évaluation en demandant une licence temporaire gratuite.

Conclusion

Dans cet article, vous avez appris comment ajouter ou supprimer des métadonnées de package XMP personnalisées à partir d’images GIF à l’aide de C#. Vous avez également appris à lire les propriétés du package XMP à l’aide de C#. De plus, vous pouvez en savoir plus sur GroupDocs.Metadata pour l’API .NET à l’aide de la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur le forum.

Voir également