Comment écrire des métadonnées d’image (HTML)

[ Cet article est destiné aux développeurs Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]

Cette rubrique explique comment utiliser un objet BitmapEncoder pour écrire des métadonnées d’image. Vous pouvez écrire des métadonnées d’image à l’aide de propriétés Windows ou du langage de requête de métadonnées WIC (Windows Imaging Component).

Pour plus d’informations sur l’accès aux métadonnées à l’aide de BitmapDecoder et BitmapEncoder, voir Comment lire des métadonnées d’image.

Remarque  Vous pouvez vous servir des API Windows.Storage.FileProperties pour collecter et définir des propriétés de base dans un Windows.StorageFile sans ouvrir un flux. Pour plus d’informations, voir Comment obtenir des propriétés d’image.

 

Ce que vous devez savoir

Technologies

Prérequis

Instructions

Étape 1: Obtenir un objet d’encodeur

Écrivez le début d’une fonction qui reçoit un objet BitmapEncoder.

function (encoder) {
    

L’encodeur vous permet d’accéder aux métadonnées d’image. Si vous ne disposez pas encore d’un objet d’encodeur, voir Comment coder une nouvelle image.

Étape 2: Créer une collection de métadonnées à définir

Utilisez un BitmapPropertySet pour stocker des éléments de métadonnées que vous souhaitez définir sur l’encodeur. Chaque élément de métadonnées est une paire clé-valeur.

La clé est une chaîne qui identifie l’élément de métadonnées à définir. BitmapEncoder accepte certaines propriétés Windows, ainsi que des requêtes créées à l’aide du langage de requête de métadonnées WIC. Pour obtenir une liste des propriétés Windows prises en charge, voir Propriétés Windows prises en charge. Pour obtenir un récapitulatif des requêtes de métadonnées WIC prises en charge, voir Requêtes de métadonnées au format d’image natif WIC.

La valeur est un BitmapTypedValue qui vous permet d’associer la valeur de métadonnées réelle avec un type de données explicite (Windows.Foundation.PropertyType).

Définissez les métadonnées System.Photo.Orientation qui spécifient l’orientation EXIF sur une valeur de 1 qui précise l’orientation « normale » et y attribue un type de données uint16.

    var propertySet = new Windows.Graphics.Imaging.BitmapPropertySet();
    var orientationValue = new Windows.Graphics.Imaging.BitmapTypedValue(
        1, // Defined as EXIF orientation = "normal"
        Windows.Foundation.PropertyType.uint16
        );

    propertySet.insert("System.Photo.Orientation", orientationValue);     

Étape 3: Définir les métadonnées sur l’encodeur

Une fois tous les éléments de métadonnées créés, définissez-les sur l’encodeur et poursuivez l’opération de codage.

    encoder.bitmapProperties.setPropertiesAsync(propertySet).done(function () {
        // Continue the encoding operation.
    }, function (error) {
        switch (error.number) {
            case -2003292351: // WINCODEC_ERR_PROPERTYNOTSUPPORTED
                // The file format does not support this property.
                break;
            default:
                throw error;
        }
    });
}    

Remarque  Chaque format d’image prend en charge un ensemble distinct d’éléments de métadonnées. Si vous tentez de définir un élément de métadonnées ou de propriété qui n’est pas pris en charge par le format d’image, vous obtiendrez une erreur. Par exemple, seules les images JPEG, TIFF et JPEG-XR prennent en charge la propriété System.Photo.Orientation.

 

Remarques

La définition de plusieurs propriétés obéit aux mêmes principes que la définition d’une seule propriété, sauf que vous spécifiez plusieurs paires nom-valeur dans une liste. Le code présenté ici définit simultanément les valeurs Orientation et CameraModel.

encoder.savePropertiesAsync(["System.Photo.Orientation": 1],
                                                         "System.Photo.CameraModel": "Camera Model 1"]);

Rubriques associées

Comment encoder une image

Propriétés System.Photo

Comment lire les métadonnées d’image

Langage de requête de métadonnées WIC

Requêtes de métadonnées au format d’image natif WIC

Propriétés Windows prises en charge