Hinzufügen oder Entfernen von benutzerdefinierten XMP-Metadaten aus GIF mit C#

Die Metadaten der Extensible Metadata Platform (XMP) sind als XML-formatierter Text codiert. Das definierte XMP-Datenmodell kann verwendet werden, um einen beliebigen Satz von Metadateneigenschaften in Form von Name/Wert-Paaren zu speichern. Sie können Ihren Bildern programmgesteuert ein benutzerdefiniertes XMP-Metadatenpaket hinzufügen. In diesem Artikel erfahren Sie, wie Sie mithilfe von C# benutzerdefinierte XMP-Metadaten zu GIF hinzufügen oder daraus entfernen.

Die folgenden Themen werden in diesem Artikel behandelt/behandelt:

C#-API zum Hinzufügen oder Entfernen von XMP-Metadaten

Ich werde die API GroupDocs.Metadata for .NET verwenden, um benutzerdefinierte XMP-Metadatenpakete hinzuzufügen oder zu entfernen. Sie können damit Metadateneigenschaften aus Dokumenten und Bilddateiformaten hinzufügen, bearbeiten, abrufen und entfernen. Die API arbeitet mit den wichtigsten Metadatenstandards wie integrierten, XMP, EXIF, IPTC, Bildressourcenblöcken, ID3 und benutzerdefinierten Metadateneigenschaften. Es kann verwendet werden, um Anwendungen in jeder Entwicklungsumgebung zu entwickeln, die auf die .NET-Plattform abzielt.

Sie können die DLL der API entweder herunterladen oder mithilfe von NuGet installieren.

Install-Package GroupDocs.Metadata

Hinzufügen eines benutzerdefinierten XMP-Metadatenpakets zu GIF mit C#

Sie können ganz einfach ein vollständig benutzerdefiniertes XMP-Paket mit benutzerdefinierten Eigenschaften erstellen und hinzufügen, indem Sie die folgenden einfachen Schritte ausführen:

  • Erstellen Sie eine Instanz der Klasse Metadata.
  • Geben Sie den Pfad des GIF-Bildes an
  • GetRootPackage as IXmp standard
  • Erstellen Sie eine Instanz der Klasse XmpPackage.
  • Geben Sie Paketpräfix und NamespaceUri an
  • Legen Sie die Eigenschaften im Name/Wert-Paar mit der Methode Set fest
  • Erstellen Sie eine Instanz der Klasse XmpPacketWrapper.
  • Rufen Sie die Methode AddPackage auf und übergeben Sie das erstellte XmpPackage
  • Weisen Sie IXMp den erstellten XmpPacketWrapper zu.XmpPackage
  • Speichern Sie die Ausgabedatei mit der Methode Metadata.Save.

Das folgende Codebeispiel zeigt, wie Sie mithilfe von C# ein benutzerdefiniertes XMP-Metadatenpaket erstellen und zu einem GIF-Bild hinzufügen.

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

Das obige Codebeispiel fügt das XMP-Metadatenpaket zum Eingabebild hinzu. Das ExifTool liest die folgenden Metadaten aus dem generierten Ausgabe-GIF-Bild.

Hinzufügen von XMP-Metadatenpaket zu GIF mit C#

Hinzufügen von XMP-Metadatenpaket zu GIF mit C#

Die Schnittstelle IXMP macht die Eigenschaft XmpPackage{.brokenlink} verfügbar, um das XMP-Metadatenpaket abzurufen oder festzulegen.

Die Metadatenklasse stellt die Methode GetRootPackage bereit, um das Stammpaket abzurufen, das Zugriff auf alle aus der Datei extrahierten Metadateneigenschaften bietet.

Die Klasse XmpPackage stellt verschiedene Eigenschaften zum Definieren des Pakets bereit, z. B. Prefix, NamespaceUri und Keys. Diese Klasse stellt auch Set-Methoden bereit, um Name/Wert für benutzerdefinierte Metadateneigenschaften festzulegen.

Die Klasse XmpPacketWrapper enthält ein serialisiertes XMP-Paket. Die Methode AddPackage dieser Klasse ermöglicht das Hinzufügen des definierten benutzerdefinierten Pakets.

Weitere Einzelheiten zu „Arbeiten mit XMP-Metadaten“ finden Sie in der Dokumentation.

Lesen von Metadateneigenschaften von benutzerdefinierten XMP-Paketen mit C#

Sie können alle benutzerdefinierten Eigenschaften des benutzerdefinierten XMP-Pakets ganz einfach lesen, indem Sie die folgenden einfachen Schritte ausführen:

  • Erstellen Sie eine Instanz der Klasse Metadata.
  • Geben Sie den Pfad des GIF-Bildes an
  • GetRootPackage as IXmp standard
  • Holen Sie sich alle Pakete einzeln von IXmp.XmpPackage.Packages
  • Rufen Sie NamespaceUri und Prefix für jedes Paket ab
  • Rufen Sie FindProperties für jeden Paketschlüssel auf, um den Eigenschaftsnamen und -wert zu erhalten

Das folgende Codebeispiel zeigt, wie alle im benutzerdefinierten XMP-Paket definierten Eigenschaften mit C# gelesen werden.

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

Das obige Codebeispiel soll die folgende Ausgabe erzeugen:

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>

Die Methode FindProperties der Klasse XmpPackage sucht und findet rekursiv die Metadateneigenschaften, die das angegebene Prädikat erfüllen.

Benutzerdefiniertes XMP-Paket mit C# entfernen

Sie können das XMP-Paket aus GIF-Bildern entfernen, indem Sie die folgenden einfachen Schritte ausführen:

Das folgende Codebeispiel zeigt, wie Sie das XMP-Metadatenpaket mithilfe von C# aus dem GIF-Bild entfernen.

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

Das obige Codebeispiel soll das XMP-Metadatenpaket aus dem Eingabebild entfernen. Das ExifTool liest die folgenden Metadaten aus dem generierten Ausgabe-GIF-Bild.

Entfernen Sie das XMP-Metadatenpaket aus GIF mit C#

Entfernen Sie das XMP-Metadatenpaket mit C# aus GIF

Holen Sie sich eine kostenlose Lizenz

Sie können die API ohne Evaluierungseinschränkungen testen, indem Sie eine kostenlose temporäre Lizenz anfordern.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie mithilfe von C# benutzerdefinierte XMP-Paketmetadaten aus GIF-Bildern hinzufügen oder daraus entfernen. Außerdem haben Sie gelernt, wie Sie XMP-Paketeigenschaften mit C# lesen. Darüber hinaus können Sie mithilfe der Dokumentation mehr über GroupDocs.Metadata for .NET API erfahren. Bei Unklarheiten können Sie uns gerne im Forum kontaktieren.

Siehe auch