HEIC (High-Efficiency Image Container) è un contenitore che può contenere immagini HEIF in formato immagine ad alta efficienza. XMP è uno standard di metadati basato su XML, che può memorizzare le proprietà dei metadati come coppie nome/valore. Tuttavia, EXIF (Exchangeable Image File Format) è lo standard e definisce come archiviare le proprietà dei metadati nelle immagini e nei formati audio più comuni. In questo articolo impareremo come estrarre, aggiornare e rimuovere i metadati XMP ed EXIP delle immagini HEIF/HEIC utilizzando C# all’interno di applicazioni .NET.
Di seguito vengono trattati i seguenti argomenti:
- API .NET per EXIF, metadati XMP
- Leggi i dati EXIF delle immagini HEIC/HEIF
- Leggi i dati XMP delle immagini HEIC/HEIF
API .NET per metadati XMP ed EXIF
GroupDocs.Metadata fornisce l’API .NET per automatizzare la gestione dei metadati all’interno delle applicazioni .NET. L’API consente di leggere, aggiornare, aggiungere, pulire/rimuovere e attraversare i metadati per molti formati di file. L’API supporta vari standard di metadati come EXIF, IPTC e XMP. Puoi anche visitare la documentazione per l’elenco completo dei formati di file supportati per la manipolazione dei metadati.
Puoi scaricare le DLL o il programma di installazione MSI dalla sezione download o installare l’API nella tua applicazione .NET tramite NuGet.
PM> Install-Package GroupDocs.Metadata
Leggi i dati EXIF delle immagini HEIC / HEIF in C#
Di seguito sono riportati i passaggi per leggere ed estrarre i dati EXIF delle immagini HEIC e HEIF.
- Carica l’immagine HEIF o HEIC utilizzando la classe Metadata.
- Ottieni il pacchetto di root.
- Recupera il pacchetto EXIF dal pacchetto radice.
- Attraversa le proprietà dei dati EXIF.
- Inoltre, puoi ottenere le informazioni IFD (Image File Directory) e GPS dal pacchetto EXIF.
Il codice seguente mostra come ottenere dati EXIF, informazioni sui metadati IFD e GPS dell’immagine HEIC usando C#.
// Leggi EXIF, EXIF IFD, EXIF GPS Pacchetto di immagini HEIF / HEIC in C#
using (Metadata metadata = new Metadata(@"image.heic"))
{
IExif root = metadata.GetRootPackage() as IExif;
if (root != null && root.ExifPackage != null)
{
const string pattern = "{0} = {1}";
foreach (TiffTag tag in root.ExifPackage.ToList())
{
Console.WriteLine(pattern, tag.TagID, tag.Value);
}
foreach (TiffTag tag in root.ExifPackage.ExifIfdPackage.ToList())
{
Console.WriteLine(pattern, tag.TagID, tag.Value);
}
foreach (TiffTag tag in root.ExifPackage.GpsPackage.ToList())
{
Console.WriteLine(pattern, tag.TagID, tag.Value);
}
}
}
Leggi i dati XMP delle immagini HEIC/HEIF in C#
I passaggi seguenti leggono i metadati XMP delle immagini HEIC o HEIF.
- Carica l’immagine HEIF o HEIC utilizzando la classe Metadata.
- Ottieni il pacchetto radice usando il metodo getRootPackage.
- Dal pacchetto principale, puoi ottenere le informazioni di base di XMP.
- Inoltre, puoi ottenere le informazioni DCMI Dublin Core.
- Inoltre, puoi ottenere informazioni su Photoshop utilizzando il metodo getPhotoshop.
Il codice sorgente seguente mostra come ottenere informazioni di base su XMP, DCMI e Photoshop in C#.
// Estrai i dati XMP Basic, DublinCore e Photoshop di immagini HEIC e HEIF in C#
using (Metadata metadata = new Metadata(@"xmp.heic"))
{
IXmp root = metadata.GetRootPackage() as IXmp;
if (root != null && root.XmpPackage != null)
{
if (root.XmpPackage.Schemes.XmpBasic != null)
{
Console.WriteLine(root.XmpPackage.Schemes.XmpBasic.CreatorTool);
Console.WriteLine(root.XmpPackage.Schemes.XmpBasic.CreateDate);
Console.WriteLine(root.XmpPackage.Schemes.XmpBasic.ModifyDate);
Console.WriteLine(root.XmpPackage.Schemes.XmpBasic.Label);
Console.WriteLine(root.XmpPackage.Schemes.XmpBasic.Nickname);
// ...
}
if (root.XmpPackage.Schemes.DublinCore != null)
{
Console.WriteLine(root.XmpPackage.Schemes.DublinCore.Format);
Console.WriteLine(root.XmpPackage.Schemes.DublinCore.Coverage);
Console.WriteLine(root.XmpPackage.Schemes.DublinCore.Identifier);
Console.WriteLine(root.XmpPackage.Schemes.DublinCore.Source);
// ...
}
if (root.XmpPackage.Schemes.Photoshop != null)
{
Console.WriteLine(root.XmpPackage.Schemes.Photoshop.ColorMode);
Console.WriteLine(root.XmpPackage.Schemes.Photoshop.IccProfile);
Console.WriteLine(root.XmpPackage.Schemes.Photoshop.Country);
Console.WriteLine(root.XmpPackage.Schemes.Photoshop.City);
Console.WriteLine(root.XmpPackage.Schemes.Photoshop.DateCreated);
// ...
}
// ...
}
}
Allo stesso modo, ci sono molti metodi setter per impostare o aggiornare diverse proprietà XMP. Puoi anche fornire la tua coppia chiave-valore per impostare la proprietà del pacchetto XMP personalizzato.
Rimuovere i metadati EXIF e XMP delle immagini HEIC/HEIF in C#
Puoi semplicemente impostare il rispettivo pacchetto EXIF o XMP su null per rimuovere tutte le proprietà dei metadati.
Il codice seguente rimuove i dati EXIF delle immagini HEIC in C#.
using (Metadata metadata = new Metadata("image.heic"))
{
IExif root = metadata.GetRootPackage() as IExif;
if (root != null)
{
root.ExifPackage = null;
metadata.Save("no-exif-image.heic");
}
}
Il codice seguente rimuove i dati XMP delle immagini HEIC in C#.
using (Metadata metadata = new Metadata("image.heic"))
{
IXmp root = metadata.GetRootPackage() as IXmp;
if (root != null)
{
root.XmpPackage = null;
metadata.Save("no-xmp-image.heic");
}
}
Ottieni una licenza API gratuita
Puoi ottenere una licenza temporanea gratuita per utilizzare l’API senza i limiti di valutazione.
Conclusione
Per riassumere, abbiamo imparato a estrarre, aggiornare, rimuovere i metadati EXIF e XMP dalle immagini HEIF/HEIC in C#. Inoltre, hai visto come ottenere informazioni IFD e GPS da queste immagini. Ora puoi ottenere facilmente queste informazioni e anche iniziare a creare le tue applicazioni come GroupDocs.Metadata App Product Family per automatizzare le informazioni sui metadati.
Per ulteriori informazioni, opzioni ed esempi, puoi visitare la documentazione e il repository GitHub. Per ulteriori domande, contattaci sul supporto forum.