Extraire les métadonnées des images à l'aide de C#

Vous pouvez ajouter, modifier, supprimer ou extraire des détails d’image tels que la hauteur, la largeur, la marque, le modèle, etc. stockés sous forme de métadonnées par programme. En tant que développeur C#, vous pouvez facilement extraire et manipuler les informations de métadonnées des images par programmation sur le cloud. Dans cet article, vous apprendrez à extraire et à manipuler les métadonnées des images à l’aide d’une API REST en C#.

Les sujets suivants sont abordés/couverts dans cet article :

API REST de manipulation de métadonnées de documents et SDK .NET

Pour manipuler les métadonnées des images JPEG, j’utiliserai l’API .NET SDK of GroupDocs.Metadata Cloud. Il vous permet d’ajouter, de modifier, de récupérer et de supprimer des propriétés de métadonnées à partir de documents et de formats de fichiers image. Il vous suffit de définir les critères de recherche et l’API REST Cloud des métadonnées s’occupera des opérations de métadonnées spécifiées dans les formats de fichiers pris en charge. Il fournit également le SDK Java en tant que membres de la famille de manipulation des métadonnées de document pour l’API Cloud.

Vous pouvez installer GroupDocs.Metadata sur votre projet Visual Studio à partir du gestionnaire de packages NuGet ou à l’aide de la commande suivante dans la console du gestionnaire de packages :

Install-Package GroupDocs.Metadata-Cloud

Veuillez obtenir votre ID client et votre secret client à partir du tableau de bord avant de commencer à suivre les étapes et les exemples de code disponibles. Une fois que vous avez votre ID client et votre secret, ajoutez le code comme indiqué ci-dessous :

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

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

Ajouter des métadonnées aux images à l’aide d’une API REST en C#

Vous pouvez ajouter des métadonnées aux images en suivant les étapes simples indiquées ci-dessous :

Télécharger l’image

Tout d’abord, téléchargez le fichier JPEG sur le Cloud à l’aide de l’exemple de code ci-dessous :

// initialisation de l'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();
}

Par conséquent, le fichier image JPEG téléchargé sera disponible dans la section des fichiers de votre tableau de bord sur le cloud.

Ajouter des métadonnées à l’image à l’aide de C#

Vous pouvez ajouter des métadonnées à l’image JPEG par programmation en suivant les étapes ci-dessous.

  • Créer une instance de MetadataApi
  • Définir le chemin du fichier image JPEG dans le modèle FileInfo
  • Définir les options d’ajout
  • Définir la valeur et les critères de recherche pour la propriété à l’aide du modèle AddProperty
  • Créer AddRequest avec AddOptions
  • Obtenez des résultats en appelant la méthode MetadataApi.Add()

L’exemple de code suivant montre comment ajouter des métadonnées à une image JPEG à l’aide d’une API REST.

// initialisation de l'API
var apiInstance = new MetadataApi(configuration);

// chemin de l'image d'entrée
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// définir les options d'ajout de métadonnées
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"
                }
            },
        }
    }
};

// ajouter une demande
var request = new AddRequest(options);
var response = apiInstance.Add(request);
Ajouter des métadonnées à partir d'images à l'aide d'une API REST en C#

Ajouter des métadonnées à partir d’images à l’aide d’une API REST en C#

Télécharger l’image

Les exemples de code ci-dessus enregistreront le fichier JPEG mis à jour sur le cloud et pourront être téléchargés à l’aide de l’exemple de code suivant :

// initialisation de l'API
var fileApi = new FileApi(configuration);

// chemin par défaut
var file = "metadata\\add_metadata\\input_jpg\\input.jpg";

// demande de téléchargement
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);
}

Mettre à jour les métadonnées de l’image à l’aide de C#

Vous pouvez mettre à jour les métadonnées de l’image JPEG par programmation en suivant les étapes ci-dessous.

  • Créer une instance de MetadataApi
  • Définir le chemin du fichier image JPEG dans le modèle FileInfo
  • Définir les SetOptions
  • Définir NewValue et SearchCriteria pour la propriété à l’aide du modèle SetProperty
  • Créer SetRequest avec SetOptions
  • Obtenez des résultats en appelant la méthode MetadataApi.Set()

L’exemple de code suivant montre comment définir les métadonnées d’une image JPEG à l’aide d’une API REST. Veuillez suivre les étapes mentionnées précédemment pour charger et télécharger un fichier.

// initialisation de l'API
var apiInstance = new MetadataApi(configuration);

// chemin de l'image d'entrée
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// définir les options d'ensemble de métadonnées
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"
        }
    }
};

// demande de mise à jour
var request = new SetRequest(options);
var response = apiInstance.Set(request);
Mettre à jour les métadonnées des images à l'aide d'une API REST en C#

Mettre à jour les métadonnées des images à l’aide d’une API REST en C#

Supprimer les métadonnées de l’image à l’aide de C#

Vous pouvez supprimer les métadonnées de l’image JPEG par programmation en suivant les étapes ci-dessous.

  • Créer une instance de MetadataApi
  • Définir le chemin du fichier image JPEG dans le modèle FileInfo
  • Définir les options de suppression
  • Définir les critères de recherche
  • Créer RemoveRequest avec RemoveOptions
  • Obtenez des résultats en appelant la méthode MetadataApi.Remove()

L’exemple de code suivant montre comment supprimer les métadonnées d’une image JPEG à l’aide d’une API REST. Veuillez suivre les étapes mentionnées précédemment pour charger et télécharger un fichier.

// initialisation de l'API
var apiInstance = new MetadataApi(configuration);

// chemin de l'image d'entrée
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// définir les options de suppression des métadonnées
var options = new RemoveOptions
{
    FileInfo = fileInfo,
    SearchCriteria = new SearchCriteria
    {
        TagOptions = new TagOptions
        {
            PossibleName = "Copyright"
        }
    }
};

// supprimer la demande
var request = new RemoveRequest(options);
var response = apiInstance.Remove(request);
Supprimer les métadonnées des images à l'aide d'une API REST en C#

Supprimer les métadonnées des images à l’aide d’une API REST en C#

Extraire les métadonnées de l’image à l’aide de C#

Vous pouvez extraire les métadonnées de l’image JPEG par programmation en suivant les étapes ci-dessous.

  • Créer une instance de MetadataApi
  • Définir le chemin du fichier image JPEG dans le modèle FileInfo
  • Définir les options d’extraction
  • Créer ExtractRequest avec ExtractOptions
  • Obtenez des résultats en appelant la méthode MetadataApi.Extract()

L’exemple de code suivant montre comment extraire les métadonnées d’une image JPEG à l’aide d’une API REST. Veuillez suivre les étapes mentionnées précédemment pour télécharger un fichier.

// initialisation de l'API
var apiInstance = new MetadataApi(configuration);

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

// options d'extraction
var options = new ExtractOptions
{
    FileInfo = fileInfo
};

// demande d'extrait
var request = new ExtractRequest(options);
var response = apiInstance.Extract(request);

// métadonnées extraites
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);
        }
    }
}
Métadonnées d'image

Métadonnées d’image

L’exemple de code ci-dessus produira la sortie suivante :

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[] 

Essayez en ligne

Veuillez essayer l’outil en ligne gratuit de manipulation des métadonnées JPEG suivant, qui est développé à l’aide de l’API ci-dessus. https://products.groupdocs.app/metadata/jpeg

Conclusion

Dans cet article, vous avez appris à ajouter, modifier, supprimer et extraire des métadonnées d’images sur le cloud. Cet article a également expliqué comment télécharger par programmation un fichier image JPEG sur le cloud et le télécharger depuis le cloud. Vous pouvez en savoir plus sur l’API GroupDocs.Metadata Manipulation Cloud en utilisant la documentation. Nous fournissons également une section API Reference qui vous permet de visualiser et d’interagir avec nos API directement via le navigateur. En cas d’ambiguïté, n’hésitez pas à nous contacter sur le forum.

Voir également