
Model danych Extensible Metadata Platform (XMP) może służyć do przechowywania dowolnego zestawu właściwości metadanych w postaci pary nazwa/wartość zakodowanej jako tekst w formacie XML. Jako programista Java możesz łatwo programowo dodać do swoich obrazów niestandardowy pakiet metadanych XMP. W tym artykule dowiesz się, jak dodawać lub usuwać niestandardowe metadane XMP z GIF przy użyciu języka Java.
W tym artykule omówiono/omówiono następujące tematy:
- Interfejs API Java umożliwiający dodawanie lub usuwanie niestandardowych metadanych XMP
- Dodaj niestandardowy pakiet metadanych XMP do pliku GIF przy użyciu języka Java
- Przeczytaj właściwości niestandardowego pakietu metadanych XMP przy użyciu języka Java
- Usuń niestandardowy pakiet metadanych XMP przy użyciu języka Java
Interfejs API Java umożliwiający dodawanie lub usuwanie niestandardowych metadanych XMP
Do dodawania lub usuwania niestandardowego pakietu metadanych XMP z obrazów GIF będziemy używać interfejsu API GroupDocs.Metadata for Java. Umożliwia dodawanie, edytowanie, pobieranie i usuwanie właściwości metadanych z obsługiwanych dokumentów i formatów plików graficznych. Interfejs API współpracuje z najbardziej znanymi standardami metadanych, takimi jak wbudowane właściwości metadanych, np. autor, data utworzenia, właściwości metadanych specyficzne dla formatu, np. XMP, EXIF, IPTC, bloki zasobów obrazu, ID3 i niestandardowe właściwości metadanych.
Możesz pobrać plik JAR interfejsu API lub po prostu dodać następującą konfigurację pom.xml do swojej aplikacji Java opartej na Maven, aby wypróbować poniższe przykłady kodu.
<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>
Dodaj niestandardowy pakiet metadanych XMP do pliku GIF przy użyciu języka Java
Możesz utworzyć i dodać w pełni niestandardowy pakiet XMP z właściwościami zdefiniowanymi przez użytkownika, wykonując proste kroki podane poniżej:
- Najpierw załaduj obraz GIF przy użyciu klasy Metadata.
- Następnie wywołaj standard Metadata.getRootPackage() jako standard IXmp, aby uzyskać pakiet główny.
- Utwórz instancję klasy XmpPackage, aby utworzyć nowy pakiet.
- Teraz ustaw różne właściwości, aby zdefiniować pakiet, takie jak Prefix i NamespaceUri.
- Następnie wywołaj metodę Set(), aby ustawić zdefiniowane przez użytkownika właściwości metadanych w parze Nazwa/Wartość.
- Utwórz instancję klasy XmpPacketWrapper, która zawiera serializowany pakiet XMP.
- Teraz wywołaj metodę XmpPacketWrapper.AddPackage(), aby dodać utworzony niestandardowy pakiet XmpPackage.
- Użyj metody IXmp.setXmpPackage(), aby ustawić pakiet metadanych XMP.
- Na koniec zapisz plik wyjściowy, korzystając z metody Metadata.save().
Poniższy przykładowy kod pokazuje, jak utworzyć i dodać niestandardowy pakiet metadanych XMP do obrazu GIF przy użyciu języka Java.
// Ten przykład kodu demonstruje, jak utworzyć i dodać niestandardowy pakiet metadanych XMP do obrazu GIF.
// Utwórz instancję klasy Metadata
Metadata metadata = new Metadata("C:\\Files\\xmp.gif");
// Zdobądź pakiety root
IXmp root = (IXmp)metadata.getRootPackage();
// Utwórz opakowanie pakietów Xmp
XmpPacketWrapper packet = new XmpPacketWrapper();
// Zdefiniuj pakiet niestandardowy
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));
// Dodaj niestandardowy pakiet do opakowania pakietów Xmp
packet.addPackage(custom);
// Zaktualizuj pakiet Xmp
root.setXmpPackage(packet);
// Zapisz plik
metadata.save("C:\\Files\\xmp_output.gif");
Powyższy przykładowy kod powinien dodać pakiet metadanych XMP do obrazu wejściowego. Poniżej znajdziesz dane wyjściowe wygenerowane przez ExifTool.

Dodaj niestandardowy pakiet metadanych XMP do pliku GIF przy użyciu języka Java
Przeczytaj właściwości metadanych niestandardowego pakietu XMP przy użyciu języka Java
Możesz przeczytać wszystkie zdefiniowane przez użytkownika właściwości niestandardowego pakietu XMP, wykonując kroki podane poniżej:
- Najpierw załaduj obraz GIF przy użyciu klasy Metadata.
- Następnie wywołaj standard Metadata.getRootPackage() jako standard IXmp, aby uzyskać pakiet główny. It provides access to all metadata properties extracted from the file.
- Wywołaj metodę IXmp.getXmpPackage(), aby sprawdzić, czy XmpPackage istnieje.
- Teraz pobierz tablicę XmpPackage, wywołując metodę IXmp.getXmpPackage().getPackages()
- Wykonaj iterację po wszystkich pakietach i wywołaj metody XmpPackage.getNamespaceUri() i XmpPackage.getPrefix(), aby wyświetlić identyfikator URI przestrzeni nazw pakietu i przedrostek każdego pakietu
- Wykonaj pętlę przez wszystkie klucze zwrócone przez metodę XmpPackage.getKeys(), aby wydrukować wartość metadanych
- Na koniec wywołaj metodę XmpPackage.findProperties() dla każdego klucza pakietu, aby rekurencyjnie przeszukać i znaleźć właściwość metadanych pasującą do klucza pakietu.
Poniższy przykładowy kod pokazuje, jak odczytać wszystkie właściwości zdefiniowane w niestandardowym pakiecie XMP przy użyciu języka Java.
// Ten przykład kodu demonstruje, jak odczytać wszystkie właściwości zdefiniowane w niestandardowym pakiecie XMP
// Utwórz instancję klasy Metadata
Metadata metadata = new Metadata("C:\\Files\\xmp_output.gif");
// Zdobądź pakiety root
IXmp root = (IXmp)metadata.getRootPackage();
if (root.getXmpPackage() != null)
{
// Zdobądź pakiety Xmp
XmpPackage[] packages = root.getXmpPackage().getPackages();
// Pokaż szczegóły pakietu
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());
}
}
}
Powyższy przykładowy kod powinien dać następujący wynik:
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>
Usuń niestandardowy pakiet XMP za pomocą Java
Możesz usunąć pakiet XMP z obrazów GIF, wykonując poniższe czynności:
- Najpierw załaduj obraz GIF przy użyciu klasy Metadata.
- Następnie wywołaj standard Metadata.getRootPackage() jako standard IXmp, aby uzyskać pakiet główny.
- Teraz użyj IXmp.setXmpPackage(), aby ustawić XmpPackege na wartość null
- Na koniec zapisz plik wyjściowy, korzystając z metody Metadata.save().
Poniższy przykładowy kod pokazuje, jak usunąć pakiet metadanych XMP z obrazu GIF przy użyciu języka Java.
// Ten przykład kodu demonstruje, jak usunąć pakiet metadanych XMP z obrazu GIF.
// Utwórz instancję klasy Metadata
Metadata metadata = new Metadata("C:\\Files\\xmp_output.gif");
// Zdobądź pakiety root
IXmp root = (IXmp)metadata.getRootPackage();
// Ustaw pakiet na null
root.setXmpPackage(null);
// Zapisać obraz
metadata.save("C:\\Files\\xmp_output_Removed.gif");
Powyższy przykładowy kod usunie pakiet metadanych XMP z obrazu wejściowego. ExifTool odczytuje następujące metadane z wygenerowanego wyjściowego obrazu GIF.

Usuń niestandardowy pakiet XMP za pomocą Java.
Zdobądź bezpłatną licencję
Możesz wypróbować interfejs API bez ograniczeń ewaluacyjnych, prosząc o bezpłatną licencję tymczasową.
Wniosek
W tym artykule dowiedziałeś się, jak dodawać niestandardowe metadane pakietu XMP do obrazów GIF przy użyciu języka Java. Co więcej, widziałeś, jak czytać właściwości pakietu XMP i programowo usuwać je z obrazu GIF. Więcej informacji na temat GroupDocs.Metadata for Java API można znaleźć w dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na forum.