Agregue o elimine metadatos XMP personalizados de GIF usando Java

El modelo de datos de la plataforma extensible de metadatos (XMP) se puede utilizar para almacenar cualquier conjunto de propiedades de metadatos en forma de par de nombre/valor codificado como texto con formato XML. Como desarrollador de Java, puede agregar fácilmente un paquete de metadatos XMP personalizado a sus imágenes mediante programación. En este artículo, aprenderá cómo agregar o eliminar metadatos XMP personalizados de GIF usando Java.

Los siguientes temas se discuten/tratan en este artículo:

API de Java para agregar o eliminar metadatos XMP personalizados

Para agregar o eliminar el paquete de metadatos XMP personalizado de las imágenes GIF, utilizaremos la API GroupDocs.Metadata para Java. Le permite agregar, editar, recuperar y eliminar propiedades de metadatos de los documentos compatibles y formatos de archivo de imagen. La API funciona con los estándares de metadatos más notables, como las propiedades de metadatos integradas, por ejemplo, autor, fecha de creación, propiedades de metadatos específicas del formato, por ejemplo, XMP, EXIF, IPTC, Bloques de recursos de imagen, ID3 y propiedades de metadatos personalizados.

Puede descargar el JAR de la API o simplemente agregar la siguiente configuración pom.xml en su aplicación Java basada en Maven para probar los ejemplos de código que se mencionan a continuación.

<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>

Agregar paquete de metadatos XMP personalizado a GIF usando Java

Puede crear y agregar un paquete XMP completamente personalizado con propiedades definidas por el usuario siguiendo los sencillos pasos que se detallan a continuación:

  • En primer lugar, cargue la imagen GIF usando la clase Metadata.
  • Luego, llame a Metadata.getRootPackage() como estándar IXmp para obtener el paquete raíz.
  • Cree una instancia de la clase XmpPackage para crear un nuevo paquete.
  • Ahora, establezca varias propiedades para definir el paquete, como Prefix y NamespaceUri.
  • Luego, llame al método Set() para establecer las propiedades de metadatos definidas por el usuario en el par Nombre/Valor.
  • Cree una instancia de la clase XmpPacketWrapper que contenga el paquete XMP serializado.
  • Ahora, llame al método XmpPacketWrapper.AddPackage() para agregar el XmpPackage personalizado creado.
  • Utilice el método IXmp.setXmpPackage() para configurar el paquete de metadatos XMP.
  • Finalmente, guarde el archivo de salida usando el método Metadata.save().

El siguiente ejemplo de código muestra cómo crear y agregar un paquete de metadatos XMP personalizado a una imagen GIF usando Java.

// Este ejemplo de código muestra cómo crear y agregar un paquete de metadatos XMP personalizado a una imagen GIF.
// Crear una instancia de la clase Metadata
Metadata metadata = new Metadata("C:\\Files\\xmp.gif");

// Obtener paquetes raíz
IXmp root = (IXmp)metadata.getRootPackage();

// Crear contenedor de paquetes Xmp
XmpPacketWrapper packet = new XmpPacketWrapper();

// Definir paquete personalizado
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));

// Agregue un paquete personalizado a Xmp Packet Wrapper
packet.addPackage(custom);

// Actualizar paquete Xmp
root.setXmpPackage(packet);

// Guarda el archivo
metadata.save("C:\\Files\\xmp_output.gif");

El ejemplo de código anterior agregará el paquete de metadatos XMP a la imagen de entrada. A continuación encontrará el resultado generado por ExifTool.

Agregar paquete de metadatos XMP personalizado a GIF usando Java

Agregar paquete de metadatos XMP personalizado a GIF usando Java

Lea las propiedades de metadatos del paquete XMP personalizado con Java

Puede leer todas las propiedades definidas por el usuario del paquete XMP personalizado siguiendo los pasos que se indican a continuación:

El siguiente ejemplo de código muestra cómo leer todas las propiedades definidas en el paquete XMP personalizado mediante Java.

// Este ejemplo de código demuestra cómo leer todas las propiedades definidas en el paquete XMP personalizado.
// Crear una instancia de la clase Metadata
Metadata metadata = new Metadata("C:\\Files\\xmp_output.gif");

// Obtener paquetes raíz
IXmp root = (IXmp)metadata.getRootPackage();
if (root.getXmpPackage() != null)
{
  // Obtener paquetes Xmp
  XmpPackage[] packages = root.getXmpPackage().getPackages();
  
  // Mostrar detalles del paquete
  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());
    }
  }
}

El ejemplo de código anterior producirá el siguiente resultado:

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>

Eliminar el paquete XMP personalizado usando Java

Puede eliminar el paquete XMP de las imágenes GIF siguiendo los pasos que se detallan a continuación:

El siguiente ejemplo de código muestra cómo eliminar el paquete de metadatos XMP de una imagen GIF mediante Java.

// Este ejemplo de código muestra cómo eliminar el paquete de metadatos XMP de una imagen GIF.
// Crear una instancia de la clase Metadata
Metadata metadata = new Metadata("C:\\Files\\xmp_output.gif");

// Obtener paquetes raíz
IXmp root = (IXmp)metadata.getRootPackage();

// Establecer paquete en nulo
root.setXmpPackage(null);

// Guardar imagen
metadata.save("C:\\Files\\xmp_output_Removed.gif");

El ejemplo de código anterior eliminará el paquete de metadatos XMP de la imagen de entrada. ExifTool lee los siguientes metadatos de la imagen GIF de salida generada.

Elimine el paquete XMP personalizado usando Java.

Elimine el paquete XMP personalizado usando Java.

Obtenga una licencia gratis

Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, aprendió cómo agregar metadatos de paquetes XMP personalizados a imágenes GIF usando Java. Además, ha visto cómo leer las propiedades del paquete XMP y eliminarlas de una imagen GIF mediante programación. Puede obtener más información sobre GroupDocs.Metadata para la API de Java utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también