
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
- Adicionar pacote de metadados XMP personalizado ao GIF usando Java
- Ler propriedades personalizadas do pacote de metadados XMP usando Java
- Remover pacote de metadados XMP personalizado usando Java
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
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:
- Primeiramente, carregue a imagem GIF usando a classe Metadata.
- Em seguida, chame o Metadata.getRootPackage() como padrão IXmp para obter o pacote raiz. It provides access to all metadata properties extracted from the file.
- Chame o método IXmp.getXmpPackage() para verificar se XmpPackage existe.
- Agora, obtenha o array de XmpPackage chamando o método IXmp.getXmpPackage().getPackages()
- Iterar sobre todos os pacotes e chamar os métodos XmpPackage.getNamespaceUri() e XmpPackage.getPrefix() para mostrar o URI do namespace do pacote e o prefixo de cada pacote
- Faça um loop por todas as chaves retornadas pelo método XmpPackage.getKeys() para imprimir o valor dos metadados
- Por fim, chame o método XmpPackage.findProperties() para cada chave de pacote para pesquisar e localizar recursivamente a propriedade de metadados correspondente à chave de pacote.
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:
- Primeiramente, carregue a imagem GIF usando a classe Metadata.
- Em seguida, chame o Metadata.getRootPackage() como padrão IXmp para obter o pacote raiz.
- Agora, use o IXmp.setXmpPackage() para definir o XmpPackege como nulo
- Por fim, salve o arquivo de saída usando o método Metadata.save()
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.
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.