Come scrivere i metadati delle immagini (HTML)

[ Questo articolo è rivolto agli sviluppatori per Windows 8.x e Windows Phone 8.x che realizzano app di Windows Runtime. Gli sviluppatori che usano Windows 10 possono vedere Documentazione aggiornata ]

Questo argomento illustra come usare un oggetto BitmapEncoder per scrivere i metadati dell'immagine. Puoi scrivere i metadati usando le proprietà di Windows o il linguaggio di query dei metadati Windows Imaging Component (WIC).

Per ulteriori informazioni sull'accesso ai metadati usando BitmapDecoder e BitmapEncoder, vedi Come leggere i metadati delle immagini.

Nota  Puoi usare le API di Windows.Storage.FileProperties per ottenere e impostare proprietà di base su un oggetto Windows.StorageFile senza aprire un flusso. Per altre informazioni, vedi Come recuperare le proprietà dell'immagine.

 

Cosa sapere

Tecnologie

Prerequisiti

Istruzioni

Passaggio 1: Recupera un oggetto codificatore

Scrivi la parte iniziale di una funzione che riceve un oggetto BitmapEncoder.

function (encoder) {
    

Il codificatore ti consente l'accesso ai metadati dell'immagine. Se ancora non disponi di un oggetto codificatore, vedi Come codificare una nuova immagine.

Passaggio 2: Crea una raccolta di metadati da impostare

Usa BitmapPropertySet per archiviare i metadati da impostare sul codificatore. Ogni elemento di metadati è una coppia chiave-valore.

La chiave è una stringa che identifica l'elemento di metadati da impostare. BitmapEncoder accetta alcune proprietà di Windows e query costruite usando il linguaggio di query dei metadati WIC. Per un elenco delle proprietà di Windows supportate, vedi Proprietà di Windows supportate. Per un riepilogo delle query di metadati WIC supportati, vedi Query di metadati in formato immagine nativo WIC.

Il valore è un elemento BitmapTypedValue che consente di associare il valore di metadati effettivo con un tipo di dati esplicito (Windows.Foundation.PropertyType).

Imposta il valore di metadati System.Photo.Orientation che specifica l'orientamento EXIF, su un valore 1 che specifica un orientamento "normale" e assegna a esso un tipo di dati 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);     

Passaggio 3: Impostare i metadati sul codificatore

Dopo avere costruito tutti gli elementi di metadati, impostali sul codificatore e continua con l'operazione di codifica.

    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;
        }
    });
}    

Nota  Ogni formato di immagine supporta un set diverso di elementi di metadati. Se tenti di impostare un elemento di metadati o di proprietà non supportato dal formato di immagine, otterrai un errore. Ad esempio, solo le immagini JPEG, TIFF e JPEG-XR supportano la proprietà System.Photo.Orientation.

 

Osservazioni

Per impostare più proprietà, procedi come per una singola proprietà, ma specifica in un elenco più coppie nome/valore Qui il codice imposta contemporaneamente l'orientamento e CameraModel.

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

Argomenti correlati

Come codificare un'immagine

Proprietà System.Photo

Come leggere i metadati dell'immagine

Linguaggio di query WIC per metadati

Query di metadati in formato immagine nativo WIC

Proprietà di Windows supportate