Aggiungi o rimuovi metadati XMP personalizzati da GIF utilizzando C#

I metadati Extensible Metadata Platform (XMP) sono codificati come testo in formato XML. Il modello di dati XMP definito può essere utilizzato per archiviare qualsiasi insieme di proprietà di metadati sotto forma di coppia nome/valore. Puoi aggiungere un pacchetto di metadati XMP personalizzato alle tue immagini in modo programmatico. In questo articolo imparerai come aggiungere o rimuovere metadati XMP personalizzati da GIF usando C#.

I seguenti argomenti sono discussi/trattati in questo articolo:

API C# per aggiungere o rimuovere metadati XMP

Userò l’API GroupDocs.Metadata for .NET per aggiungere o rimuovere il pacchetto di metadati XMP personalizzato. Ti consente di aggiungere, modificare, recuperare e rimuovere le proprietà dei metadati da documenti e formati di file immagine. L’API funziona con gli standard di metadati più importanti come built-in, XMP, EXIF, IPTC, Image Resource Blocks, ID3 e proprietà di metadati personalizzate. Può essere utilizzato per sviluppare applicazioni in qualsiasi ambiente di sviluppo destinato alla piattaforma .NET.

Puoi scaricare la DLL dell’API o installarla utilizzando NuGet.

Install-Package GroupDocs.Metadata

Aggiungi un pacchetto di metadati XMP personalizzato a GIF usando C#

Puoi facilmente creare e aggiungere un pacchetto XMP completamente personalizzato contenente proprietà definite dall’utente seguendo i semplici passaggi indicati di seguito:

  • Crea un’istanza della classe Metadata.
  • Fornisci il percorso dell’immagine GIF
  • Pacchetto GetRoot as IXmp standard
  • Crea un’istanza della classe XmpPackage.
  • Fornisci il prefisso del pacchetto e NamespaceUri
  • Impostare le proprietà nella coppia Nome/Valore usando il metodo Set.
  • Crea un’istanza della classe XmpPacketWrapper.
  • Chiama il metodo AddPackage e passa XmpPackage creato
  • Assegna XmpPacketWrapper creato a IXMp.XmpPackage
  • Salvare il file di output utilizzando il metodo Metadata.Save.

L’esempio di codice seguente mostra come creare e aggiungere un pacchetto di metadati XMP personalizzato all’immagine GIF usando 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");
}

L’esempio di codice sopra deve aggiungere il pacchetto di metadati XMP all’immagine di input. ExifTool legge i seguenti metadati dall’immagine GIF di output generata.

Aggiungi il pacchetto di metadati XMP a GIF usando C#

Aggiungi il pacchetto di metadati XMP a GIF usando C#

L’interfaccia IXMP espone la proprietà XmpPackage{.brokenlink} per ottenere o impostare il pacchetto di metadati XMP.

La classe Metadata fornisce il metodo GetRootPackage per ottenere il pacchetto radice che fornisce l’accesso a tutte le proprietà dei metadati estratte dal file.

La classe XmpPackage fornisce varie proprietà per definire il pacchetto come Prefix, NamespaceUri e Keys. Questa classe fornisce anche i metodi Set per impostare nome/valore per le proprietà dei metadati definiti dall’utente.

La classe XmpPacketWrapper contiene il pacchetto XMP serializzato. Il metodo AddPackage di questa classe consente di aggiungere il pacchetto personalizzato definito.

Puoi trovare maggiori dettagli su “Lavorare con i metadati XMP” nella documentazione.

Leggi le proprietà dei metadati del pacchetto XMP personalizzato usando C#

Puoi leggere facilmente tutte le proprietà definite dall’utente del pacchetto XMP personalizzato seguendo i semplici passaggi indicati di seguito:

L’esempio di codice seguente mostra come leggere tutte le proprietà definite nel pacchetto XMP personalizzato usando 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);
      }
    }
  }
}

L’esempio di codice sopra deve produrre il seguente output:

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>

Il metodo FindProperties della classe XmpPackage ricerca e trova ricorsivamente le proprietà dei metadati che soddisfano il predicato specificato.

Rimuovere il pacchetto XMP personalizzato utilizzando C#

Puoi rimuovere il pacchetto XMP dalle immagini GIF seguendo i semplici passaggi indicati di seguito:

L’esempio di codice seguente mostra come rimuovere il pacchetto di metadati XMP dall’immagine GIF usando 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");
}

L’esempio di codice sopra rimuoverà il pacchetto di metadati XMP dall’immagine di input. ExifTool legge i seguenti metadati dall’immagine GIF di output generata.

Rimuovere il pacchetto di metadati XMP dalla GIF utilizzando C#

Rimuovere il pacchetto di metadati XMP dalla GIF utilizzando C#

Ottieni una licenza gratuita

Puoi provare l’API senza limitazioni di valutazione richiedendo una licenza temporanea gratuita.

Conclusione

In questo articolo, hai imparato come aggiungere o rimuovere i metadati del pacchetto XMP personalizzato dalle immagini GIF usando C#. Hai anche imparato a leggere le proprietà del pacchetto XMP usando C#. Inoltre, puoi conoscere GroupDocs.Metadata per l’API .NET utilizzando la documentazione. In caso di ambiguità, non esitare a contattarci sul forum.

Guarda anche