Dodaj lub usuń niestandardowe metadane XMP z GIF przy użyciu C#

Metadane platformy Extensible Metadata Platform (XMP) są kodowane jako tekst w formacie XML. Zdefiniowany model danych XMP może służyć do przechowywania dowolnego zestawu właściwości metadanych w postaci pary nazwa/wartość. Możesz programowo dodać niestandardowy pakiet metadanych XMP do swoich obrazów. W tym artykule dowiesz się, jak dodawać lub usuwać niestandardowe metadane XMP z GIF przy użyciu C#.

W tym artykule omówiono/omówiono następujące tematy:

API C# do dodawania lub usuwania metadanych XMP

Będę używać interfejsu API GroupDocs.Metadata for .NET do dodawania lub usuwania niestandardowego pakietu metadanych XMP. Umożliwia dodawanie, edytowanie, pobieranie i usuwanie właściwości metadanych z dokumentów i formatów plików graficznych. Interfejs API współpracuje z najbardziej znanymi standardami metadanych, takimi jak wbudowane, XMP, EXIF, IPTC, bloki zasobów obrazu, ID3 i niestandardowe właściwości metadanych. Można go używać do tworzenia aplikacji w dowolnym środowisku programistycznym przeznaczonym dla platformy .NET.

Możesz pobrać bibliotekę DLL interfejsu API lub zainstalować ją za pomocą NuGet.

Install-Package GroupDocs.Metadata

Dodaj niestandardowy pakiet metadanych XMP do GIF przy użyciu C#

Możesz łatwo utworzyć i dodać w pełni niestandardowy pakiet XMP zawierający właściwości zdefiniowane przez użytkownika, wykonując proste kroki wymienione poniżej:

Poniższy przykładowy kod pokazuje, jak utworzyć i dodać niestandardowy pakiet metadanych XMP do obrazu GIF przy użyciu języka C#.

using (Metadata metadata = new Metadata(@"C:\Files\xmp.gif")) {

  IXmp root = (IXmp)metadata.GetRootPackage();
  XmpPacketWrapper packet = new XmpPacketWrapper();

  XmpPackage custom = new XmpPackage("gd", "https://groupdocs.com");
  custom.Set("gd:Copyright", "Copyright (C) 2021 GroupDocs. All Rights Reserved.");
  custom.Set("gd:CreationDate", DateTime.Now.ToString());
  custom.Set("gd:Company", XmpArray.From(new String[] { "Aspose", "GroupDocs" }, XmpArrayType.Ordered));

  packet.AddPackage(custom);
  root.XmpPackage = packet;
  metadata.Save(@"C:\Files\xmp_output.gif");
}

Powyższy przykładowy kod powinien dodać pakiet metadanych XMP do obrazu wejściowego. ExifTool odczytuje następujące metadane z wygenerowanego wyjściowego obrazu GIF.

Dodaj pakiet metadanych XMP do GIF przy użyciu C#

Dodaj pakiet metadanych XMP do GIF przy użyciu C#

Interfejs IXMP udostępnia właściwość XmpPackage{.brokenlink} umożliwiającą pobieranie lub ustawianie pakietu metadanych XMP.

Klasa Metadata udostępnia metodę GetRootPackage umożliwiającą pobranie pakietu głównego zapewniającego dostęp do wszystkich właściwości metadanych wyodrębnionych z pliku.

Klasa XmpPackage udostępnia różne właściwości umożliwiające zdefiniowanie pakietu, takie jak Prefix, NamespaceUri i Keys. Klasa ta udostępnia także metody Set służące do ustawiania nazwy/wartości dla właściwości metadanych zdefiniowanych przez użytkownika.

Klasa XmpPacketWrapper zawiera serializowany pakiet XMP. Metoda AddPackage tej klasy pozwala na dodanie zdefiniowanego pakietu niestandardowego.

Więcej szczegółów na temat „[Praca z metadanymi XMP]" 23 można znaleźć w dokumentacji.

Odczytywanie właściwości metadanych niestandardowego pakietu XMP przy użyciu języka C#

Możesz łatwo odczytać wszystkie właściwości zdefiniowane przez użytkownika niestandardowego pakietu XMP, wykonując proste kroki wymienione poniżej:

Poniższy przykładowy kod pokazuje, jak odczytać wszystkie właściwości zdefiniowane w niestandardowym pakiecie XMP przy użyciu języka C#.

string file = @"C:\Files\xmp_output.gif";
using (Metadata metadata = new Metadata(file)) 
{
  IXmp root = (IXmp)metadata.GetRootPackage();

  if (root.XmpPackage != null)
  {
    foreach (var package in root.XmpPackage.Packages)
    {
      Console.WriteLine(package.NamespaceUri);
      Console.WriteLine(package.Prefix);

      foreach(var keys in package.Keys)
      {
        var property = package.FindProperties(p => p.Name == keys).FirstOrDefault();
        Console.WriteLine(property.Name + " : " + property.Value);
      }
    }
  }
}

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: 04/05/2021 2:26:17 am
gd:Company: <rdf:Seq><rdf:li>Aspose</rdf:li><rdf:li>GroupDocs</rdf:li></rdf:Seq>

Metoda FindProperties klasy XmpPackage rekurencyjnie wyszukuje i znajduje właściwości metadanych spełniające określony predykat.

Usuń niestandardowy pakiet XMP za pomocą C#

Możesz usunąć pakiet XMP z obrazów GIF, wykonując proste kroki wymienione poniżej:

Poniższy przykładowy kod pokazuje, jak usunąć pakiet metadanych XMP z obrazu GIF przy użyciu języka C#.

using (Metadata metadata = new Metadata(@"C:\Files\xmp_output.gif"))
{
  IXmp root = (IXmp)metadata.GetRootPackage();
  root.XmpPackage = null;
  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ń pakiet metadanych XMP z GIF przy użyciu C#

Usuń pakiet metadanych XMP z GIF przy użyciu C#

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ć lub usuwać niestandardowe metadane pakietu XMP z obrazów GIF przy użyciu języka C#. Nauczyłeś się także, jak czytać właściwości pakietu XMP przy użyciu języka C#. Ponadto możesz zapoznać się z GroupDocs.Metadata for .NET API korzystając z dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na forum.

Zobacz też