Adicionar ou remover metadados XMP personalizados de GIF usando Java

O modelo de dados Extensible Metadata Platform (XMP) pode ser usado para armazenar qualquer conjunto de propriedades de metadados na forma de par nome/valor codificado como texto formatado em XML. Como desenvolvedor Java, você pode adicionar facilmente um pacote de metadados XMP personalizado às suas imagens programaticamente. Neste artigo, você aprenderá como adicionar ou remover metadados XMP personalizados do GIF usando Java.

Os seguintes tópicos são discutidos/abordados neste artigo:

API Java para adicionar ou remover metadados XMP personalizados

Para adicionar ou remover o pacote de metadados personalizado XMP de imagens GIF, usaremos a API GroupDocs.Metadata for Java. Ele permite adicionar, editar, recuperar e remover propriedades de metadados dos documentos suportados e formatos de arquivo de imagem. A API funciona com os padrões de metadados mais notáveis, como propriedades de metadados incorporadas, por exemplo, autor, data de criação, propriedades de metadados específicas de formato, por exemplo, XMP, EXIF, IPTC, Blocos de recursos de imagem, ID3 e propriedades de metadados personalizadas.

Você pode baixar o JAR da API ou simplesmente adicionar a seguinte configuração pom.xml em seu aplicativo Java baseado em Maven para experimentar os exemplos de código mencionados abaixo.

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

Adicionar pacote de metadados XMP personalizado ao GIF usando Java

Você pode criar e adicionar um pacote XMP totalmente personalizado com propriedades definidas pelo usuário seguindo as etapas simples abaixo:

  • Primeiramente, carregue a imagem GIF usando a classe Metadata.
  • Em seguida, chame o Metadata.getRootPackage() como padrão IXmp para obter o pacote raiz.
  • Crie uma instância da classe XmpPackage para criar um novo pacote.
  • Agora, defina várias propriedades para definir o pacote, como Prefix e NamespaceUri.
  • Em seguida, chame o método Set() para definir as propriedades de metadados definidas pelo usuário no par Nome/Valor.
  • Crie uma instância da classe XmpPacketWrapper que contém o pacote XMP serializado.
  • Agora, chame o método XmpPacketWrapper.AddPackage() para adicionar o XmpPackage personalizado criado.
  • Use o método IXmp.setXmpPackage() para definir o pacote de metadados XMP.
  • Finalmente, salve o arquivo de saída usando o método Metadata.save().

O exemplo de código a seguir mostra como criar e adicionar um pacote de metadados XMP personalizado a uma imagem GIF usando Java.

// Este exemplo de código demonstra como criar e adicionar um pacote de metadados XMP personalizado a uma imagem GIF.
// Crie uma instância da classe Metadata
Metadata metadata = new Metadata("C:\\Files\\xmp.gif");

// Obter pacotes raiz
IXmp root = (IXmp)metadata.getRootPackage();

// Criar wrapper de pacote Xmp
XmpPacketWrapper packet = new XmpPacketWrapper();

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

// Adicionar pacote personalizado ao Xmp Packet Wrapper
packet.addPackage(custom);

// Atualizar pacote Xmp
root.setXmpPackage(packet);

// Salve o arquivo
metadata.save("C:\\Files\\xmp_output.gif");

O exemplo de código acima deve adicionar o pacote de metadados XMP à imagem de entrada. Veja abaixo a saída gerada pelo ExifTool.

Adicionar pacote de metadados XMP personalizado ao GIF usando Java

Adicionar pacote de metadados XMP personalizado ao GIF usando Java

Ler propriedades de metadados do pacote XMP personalizado usando Java

Você pode ler todas as propriedades definidas pelo usuário do pacote XMP personalizado seguindo as etapas abaixo:

O exemplo de código a seguir mostra como ler todas as propriedades definidas no pacote XMP personalizado usando Java.

// Este exemplo de código demonstra como ler todas as propriedades definidas no pacote XMP personalizado
// Crie uma instância da classe Metadata
Metadata metadata = new Metadata("C:\\Files\\xmp_output.gif");

// Obter pacotes raiz
IXmp root = (IXmp)metadata.getRootPackage();
if (root.getXmpPackage() != null)
{
  // Obter pacotes Xmp
  XmpPackage[] packages = root.getXmpPackage().getPackages();
  
  // Mostrar detalhes do pacote
  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());
    }
  }
}

O exemplo de código acima deve produzir a seguinte saída:

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>

Remova o pacote XMP personalizado usando Java

Você pode remover o pacote XMP das imagens GIF seguindo as etapas abaixo:

O exemplo de código a seguir mostra como remover o pacote de metadados XMP de uma imagem GIF usando Java.

// Este exemplo de código demonstra como remover o pacote de metadados XMP de uma imagem GIF.
// Crie uma instância da classe Metadata
Metadata metadata = new Metadata("C:\\Files\\xmp_output.gif");

// Obter pacotes raiz
IXmp root = (IXmp)metadata.getRootPackage();

// Definir pacote como nulo
root.setXmpPackage(null);

// Salvar imagem
metadata.save("C:\\Files\\xmp_output_Removed.gif");

O exemplo de código acima deve remover o pacote de metadados XMP da imagem de entrada. O ExifTool lê os seguintes metadados da imagem GIF de saída gerada.

Remova o pacote XMP personalizado usando Java.

Remova o pacote XMP personalizado usando Java.

Obtenha uma licença gratuita

Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como adicionar metadados de pacote XMP personalizados a imagens GIF usando Java. Além disso, você viu como ler as propriedades do pacote XMP e removê-las de uma imagem GIF programaticamente. Você pode aprender mais sobre GroupDocs.Metadata para API Java usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.

Veja também