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

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

Die folgenden Themen werden in diesem Artikel behandelt/behandelt:

Java-API zum Hinzufügen oder Entfernen von benutzerdefinierten XMP-Metadaten

Zum Hinzufügen oder Entfernen des benutzerdefinierten XMP-Metadatenpakets aus GIF-Bildern verwenden wir die GroupDocs.Metadata for Java-API. Es ermöglicht Ihnen, Metadateneigenschaften aus den unterstützten Dokumenten- und Bilddateiformaten hinzuzufügen, zu bearbeiten, abzurufen und zu entfernen. Die API arbeitet mit den wichtigsten Metadatenstandards wie integrierten Metadateneigenschaften, z. B. Autor, Erstellungsdatum, formatspezifischen Metadateneigenschaften, z. B. XMP, EXIF, IPTC, Bildressourcenblöcken, ID3 und benutzerdefinierte Metadateneigenschaften.

Sie können das JAR der API herunterladen oder einfach die folgende pom.xml-Konfiguration in Ihrer Maven-basierten Java-Anwendung hinzufügen, um die unten genannten Codebeispiele auszuprobieren.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-metadata</artifactId>
        <version>21.8</version> 
</dependency>

Hinzufügen eines benutzerdefinierten XMP-Metadatenpakets zu GIF mit Java

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

  • Laden Sie zunächst das GIF-Bild mit der Klasse Metadata.
  • Rufen Sie dann Metadata.getRootPackage() als IXmp-Standard auf, um das Root-Paket abzurufen.
  • Erstellen Sie eine Instanz der Klasse XmpPackage, um ein neues Paket zu erstellen.
  • Legen Sie nun verschiedene Eigenschaften fest, um das Paket zu definieren, z. B. Prefix und NamespaceUri.
  • Rufen Sie dann die Methode Set() auf, um benutzerdefinierte Metadateneigenschaften im Name/Wert-Paar festzulegen.
  • Erstellen Sie eine Instanz der Klasse XmpPacketWrapper, die das serialisierte XMP-Paket enthält.
  • Rufen Sie nun die Methode XmpPacketWrapper.AddPackage() auf, um das erstellte benutzerdefinierte XmpPackage hinzuzufügen.
  • Verwenden Sie die Methode IXmp.setXmpPackage(), um das XMP-Metadatenpaket festzulegen.
  • Speichern Sie abschließend die Ausgabedatei mit der Methode Metadata.save().

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

// Dieses Codebeispiel zeigt, wie Sie ein benutzerdefiniertes XMP-Metadatenpaket erstellen und einem GIF-Bild hinzufügen.
// Erstellen Sie eine Instanz der Metadata-Klasse
Metadata metadata = new Metadata("C:\\Files\\xmp.gif");

// Holen Sie sich Root-Pakete
IXmp root = (IXmp)metadata.getRootPackage();

// Xmp Packet Wrapper erstellen
XmpPacketWrapper packet = new XmpPacketWrapper();

// Benutzerdefiniertes Paket definieren
XmpPackage custom = new XmpPackage("gd", "https://groupdocs.com");
custom.set("gd:Copyright", "Copyright (C) 2021 GroupDocs. All Rights Reserved.");
custom.set("gd:CreationDate", new Date().toString());
custom.set("gd:Company", XmpArray.from(new String[] { "Aspose", "GroupDocs" }, XmpArrayType.Ordered));

// Benutzerdefiniertes Paket zu Xmp Packet Wrapper hinzufügen
packet.addPackage(custom);

// XmpPackage aktualisieren
root.setXmpPackage(packet);

// Speicher die Datei
metadata.save("C:\\Files\\xmp_output.gif");

Das obige Codebeispiel fügt das XMP-Metadatenpaket zum Eingabebild hinzu. Nachfolgend finden Sie die vom ExifTool generierte Ausgabe.

Hinzufügen eines benutzerdefinierten XMP-Metadatenpakets zu GIF mit Java

Hinzufügen eines benutzerdefinierten XMP-Metadatenpakets zu GIF mit Java

Lesen Sie Metadateneigenschaften von benutzerdefinierten XMP-Paketen mit Java

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

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

// Dieses Codebeispiel zeigt, wie alle im benutzerdefinierten XMP-Paket definierten Eigenschaften gelesen werden
// Erstellen Sie eine Instanz der Metadata-Klasse
Metadata metadata = new Metadata("C:\\Files\\xmp_output.gif");

// Holen Sie sich Root-Pakete
IXmp root = (IXmp)metadata.getRootPackage();
if (root.getXmpPackage() != null)
{
  // Holen Sie sich Xmp-Pakete
  XmpPackage[] packages = root.getXmpPackage().getPackages();
  
  // Paketdetails anzeigen
  for (XmpPackage pkg : packages )
  {
    System.out.println(pkg.getNamespaceUri());
    System.out.println(pkg.getPrefix());

    for(String keys : pkg.getKeys())
    {
      MetadataProperty property = pkg.findProperties(new WithNameSpecification(keys)).get_Item(0);
      System.out.println(property.getName() + " : " + property.getValue());
    }
  }
}

Das obige Codebeispiel soll die folgende Ausgabe erzeugen:

https://groupdocs.com
gd
gd:Copyright: Copyright (C) 2021 GroupDocs. All Rights Reserved.
gd:CreationDate: Sat Oct 16 00:13:15 PKT 2021
gd:Company: <rdf:Seq><rdf:li>Aspose</rdf:li><rdf:li>GroupDocs</rdf:li></rdf:Seq>

Benutzerdefiniertes XMP-Paket mit Java entfernen

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

Das folgende Codebeispiel zeigt, wie das XMP-Metadatenpaket mithilfe von Java aus einem GIF-Bild entfernt wird.

// Dieses Codebeispiel zeigt, wie das XMP-Metadatenpaket aus einem GIF-Bild entfernt wird.
// Erstellen Sie eine Instanz der Metadata-Klasse
Metadata metadata = new Metadata("C:\\Files\\xmp_output.gif");

// Holen Sie sich Root-Pakete
IXmp root = (IXmp)metadata.getRootPackage();

// Paket auf null setzen
root.setXmpPackage(null);

// Bild speichern
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.

Benutzerdefiniertes XMP-Paket mit Java entfernen.

Benutzerdefiniertes XMP-Paket mit Java entfernen.

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 Java benutzerdefinierte XMP-Paketmetadaten zu GIF-Bildern hinzufügen. Außerdem haben Sie gesehen, wie Sie XMP-Paketeigenschaften lesen und programmgesteuert aus einem GIF-Bild entfernen. Weitere Informationen zu GroupDocs.Metadata for Java API finden Sie in der Dokumentation. Bei Unklarheiten können Sie uns gerne im Forum kontaktieren.

Siehe auch