Estrai i metadati dalle immagini usando C#

Puoi aggiungere, modificare, rimuovere o estrarre i dettagli dell’immagine come altezza, larghezza, marca, modello, ecc. memorizzati sotto forma di metadati a livello di codice. In qualità di sviluppatore C#, puoi facilmente estrarre e manipolare le informazioni sui metadati delle immagini a livello di programmazione nel cloud. In questo articolo imparerai come estrarre e manipolare i metadati delle immagini utilizzando un’API REST in C#.

I seguenti argomenti sono discussi/trattati in questo articolo:

API REST per la manipolazione dei metadati del documento e .NET SDK

Per manipolare i metadati delle immagini JPEG, utilizzerò l’API .NET SDK of GroupDocs.Metadata Cloud. Ti consente di aggiungere, modificare, recuperare e rimuovere le proprietà dei metadati da documenti e formati di file immagine. Devi solo definire i criteri di ricerca e l’API REST Cloud dei metadati si occuperà delle operazioni sui metadati specificate all’interno di formati di file supportati. Fornisce inoltre Java SDK come membri della famiglia di manipolazione dei metadati del documento per l’API Cloud.

È possibile installare GroupDocs.Metadata nel progetto di Visual Studio da NuGet Package Manager o utilizzando il comando seguente nella console di Package Manager:

Install-Package GroupDocs.Metadata-Cloud

Si prega di ottenere l’ID cliente e il segreto cliente dalla dashboard prima di iniziare a seguire i passaggi e gli esempi di codice disponibili. Una volta che hai il tuo ID cliente e segreto, aggiungi il codice come mostrato di seguito:

string clientID = "112f0f38-9dae-42d5-b4fc-cc84ae644972";
string clientSecret = "16ad3fe0bdc39c910f57d2fd48a5d618";
string myStorage = "";

Configuration configuration = new Configuration(clientID, clientSecret);
configuration.ApiBaseUrl = "https://api.groupdocs.cloud";

Aggiungi metadati alle immagini utilizzando un’API REST in C#

Puoi aggiungere metadati alle immagini seguendo i semplici passaggi indicati di seguito:

Carica l’immagine

Innanzitutto, carica il file JPEG sul Cloud utilizzando il codice di esempio riportato di seguito:

// inizializzazione dell'API
FileApi fileApi = new FileApi(configuration);
string path = @"C:\Files";

var file = Directory.GetFiles(path, "input.jpg", SearchOption.AllDirectories).FirstOrDefault();
if (file.Length != 0)
{
    var relativeFilePath = file.Replace(path, string.Empty).Trim(Path.DirectorySeparatorChar);

    var fileStream = File.Open(file, FileMode.Open);

    fileApi.UploadFile(new UploadFileRequest(relativeFilePath, fileStream, myStorage));
    fileStream.Close();
}

Di conseguenza, il file immagine JPEG caricato sarà disponibile nella sezione file della tua dashboard sul cloud.

Aggiungi metadati all’immagine usando C#

È possibile aggiungere metadati all’immagine JPEG in modo programmatico seguendo i passaggi indicati di seguito.

  • Crea un’istanza di MetadataApi
  • Impostare il percorso del file immagine JPEG nel modello FileInfo
  • Definire AddOptions
  • Impostare Value e SearchCriteria per la proprietà utilizzando il modello AddProperty
  • Crea AddRequest con AddOptions
  • Ottieni risultati chiamando il metodo MetadataApi.Add().

L’esempio di codice seguente mostra come aggiungere metadati a un’immagine JPEG usando un’API REST.

// inizializzazione dell'API
var apiInstance = new MetadataApi(configuration);

// percorso dell'immagine di input
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// definire le opzioni di aggiunta dei metadati
var options = new AddOptions
{
    FileInfo = fileInfo,
    Properties = new List<AddProperty>
    {
        new AddProperty
        {
            Value = "All rights reserved.",
            Type = "String",
            SearchCriteria = new SearchCriteria
            {
                TagOptions = new TagOptions
                {
                    PossibleName = "Copyright"
                }
            },
        }
    }
};

// aggiungi richiesta
var request = new AddRequest(options);
var response = apiInstance.Add(request);
Aggiungi metadati dalle immagini utilizzando un'API REST in C#

Aggiungi metadati dalle immagini utilizzando un’API REST in C#

Scarica l’immagine

Gli esempi di codice sopra riportati salveranno il file JPEG aggiornato sul cloud e potranno essere scaricati utilizzando il seguente esempio di codice:

// inizializzazione dell'API
var fileApi = new FileApi(configuration);

// percorso predefinito
var file = "metadata\\add_metadata\\input_jpg\\input.jpg";

// richiesta di download
var downloadRequest = new DownloadFileRequest(file, myStorage);

Stream downloadResponse = fileApi.DownloadFile(downloadRequest);
using (var fileStream = File.Create("C:\\Files\\input.jpg"))
{
    downloadResponse.Seek(0, SeekOrigin.Begin);
    downloadResponse.CopyTo(fileStream);
}

Aggiorna i metadati dell’immagine usando C#

È possibile aggiornare i metadati dell’immagine JPEG in modo programmatico seguendo i passaggi indicati di seguito.

  • Crea un’istanza di MetadataApi
  • Impostare il percorso del file immagine JPEG nel modello FileInfo
  • Definire le SetOptions
  • Impostare NewValue e SearchCriteria per la proprietà utilizzando il modello SetProperty
  • Crea SetRequest con SetOptions
  • Ottieni risultati chiamando il metodo MetadataApi.Set().

L’esempio di codice seguente mostra come impostare i metadati di un’immagine JPEG usando un’API REST. Si prega di seguire i passaggi menzionati in precedenza per caricare e scaricare un file.

// inizializzazione dell'API
var apiInstance = new MetadataApi(configuration);

// percorso dell'immagine di input
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// definire le opzioni del set di metadati
var options = new SetOptions
{
    FileInfo = fileInfo,
    Properties = new List<SetProperty>
    {
        new SetProperty
        {
            NewValue = "Copyright 2021",
            SearchCriteria = new SearchCriteria
            {
                TagOptions = new TagOptions
                {
                    PossibleName = "Copyright"
                }
            },
            Type = "String"
        }
    }
};

// richiesta di aggiornamento
var request = new SetRequest(options);
var response = apiInstance.Set(request);
Aggiorna i metadati dalle immagini utilizzando un'API REST in C#

Aggiorna i metadati dalle immagini utilizzando un’API REST in C#

Rimuovi i metadati dall’immagine usando C#

È possibile rimuovere i metadati dall’immagine JPEG in modo programmatico seguendo i passaggi indicati di seguito.

  • Crea un’istanza di MetadataApi
  • Impostare il percorso del file immagine JPEG nel modello FileInfo
  • Definisci RimuoviOpzioni
  • Imposta i criteri di ricerca
  • Crea RemoveRequest con RemoveOptions
  • Ottieni risultati chiamando il metodo MetadataApi.Remove().

L’esempio di codice seguente mostra come rimuovere i metadati da un’immagine JPEG usando un’API REST. Si prega di seguire i passaggi menzionati in precedenza per caricare e scaricare un file.

// inizializzazione dell'API
var apiInstance = new MetadataApi(configuration);

// percorso dell'immagine di input
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// definire le opzioni di rimozione dei metadati
var options = new RemoveOptions
{
    FileInfo = fileInfo,
    SearchCriteria = new SearchCriteria
    {
        TagOptions = new TagOptions
        {
            PossibleName = "Copyright"
        }
    }
};

// rimuovere la richiesta
var request = new RemoveRequest(options);
var response = apiInstance.Remove(request);
Rimuovi i metadati dalle immagini utilizzando un'API REST in C#

Rimuovi i metadati dalle immagini utilizzando un’API REST in C#

Estrai i metadati dall’immagine usando C#

È possibile estrarre i metadati dall’immagine JPEG in modo programmatico seguendo i passaggi indicati di seguito.

  • Crea un’istanza di MetadataApi
  • Impostare il percorso del file immagine JPEG nel modello FileInfo
  • Definisci opzioni di estrazione
  • Crea ExtractRequest con ExtractOptions
  • Ottieni risultati chiamando il metodo MetadataApi.Extract().

L’esempio di codice seguente mostra come estrarre i metadati da un’immagine JPEG usando un’API REST. Si prega di seguire i passaggi menzionati in precedenza per caricare un file.

// inizializzazione dell'API
var apiInstance = new MetadataApi(configuration);

// file sorgente
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// estrarre le opzioni
var options = new ExtractOptions
{
    FileInfo = fileInfo
};

// richiesta di estrazione
var request = new ExtractRequest(options);
var response = apiInstance.Extract(request);

// metadati estratti
if (response.MetadataTree.InnerPackages != null)
{
    var innerPackages = response.MetadataTree.InnerPackages;
   for (int i = 0; i < innerPackages.Count; i++)
    {
        Console.WriteLine($"\nPackage: {innerPackages[i].PackageName}");
        var packageProperties = innerPackages[i].PackageProperties;
       for (int j = 0; j < packageProperties.Count; j++)
        {
            Console.WriteLine(packageProperties[j].Name + " : " + packageProperties[j].Value);
        }
    }
}
Metadati dell'immagine

Metadati dell’immagine

L’esempio di codice precedente produrrà il seguente output:

Package: FileFormat
FileFormat : 9
MimeType : image/jpeg
ByteOrder : 1
Width : 480
Height : 360

Package: Xmp
http://ns.microsoft.com/photo/1.0/ :

Package: Exif
Exif.GpsIfd :
Exif.ExifIfd :
Make : Canon
Model : Canon PowerShot S40
Orientation : System.Int32[]
XResolution : System.Double[]
YResolution : System.Double[]
ResolutionUnit : System.Int32[]
DateTime : 2003:12:14 12:01:44
YCbCrPositioning : System.Int32[]
ExifIfd : System.Int64[]
Exif.Thumbnail : System.Byte[] 

Prova in linea

Prova il seguente strumento online gratuito per la manipolazione dei metadati JPEG, sviluppato utilizzando l’API di cui sopra. https://products.groupdocs.app/metadata/jpeg

Conclusione

In questo articolo hai imparato come aggiungere, modificare, rimuovere ed estrarre i metadati dalle immagini sul cloud. Questo articolo ha anche spiegato come caricare a livello di codice un file di immagine JPEG nel cloud e scaricarlo dal cloud. Puoi saperne di più su GroupDocs.Metadata Manipulation Cloud API utilizzando la documentazione. Forniamo anche una sezione Riferimento API che ti consente di visualizzare e interagire con le nostre API direttamente attraverso il browser. In caso di qualsiasi ambiguità, non esitate a contattarci sul forum.

Guarda anche