Compartir a través de


Cómo escribir metadatos de imagen (HTML)

[ Este artículo está destinado a desarrolladores de Windows 8.x y Windows Phone 8.x que escriben aplicaciones de Windows Runtime. Si estás desarrollando para Windows 10, consulta la documentación más reciente ]

Aquí se muestra cómo usar un objeto BitmapEncoder para escribir metadatos de imagen. Puedes escribir metadatos mediante las propiedades de Windows o el lenguaje de consulta de metadatos de Windows Imaging Component (WIC).

Para obtener más información sobre el acceso a metadatos mediante BitmapDecoder y BitmapEncoder, consulta Cómo leer metadatos de imagen.

Nota  Puedes usar las API Windows.Storage.FileProperties para obtener y establecer propiedades básicas en un Windows.StorageFile sin abrir una secuencia. Consulta Cómo obtener propiedades de imagen para obtener más información.

 

Lo que debes saber

Tecnologías

Requisitos previos

Instrucciones

Paso 1: Obtener un objeto codificador

Escribe el inicio de una función que recibe un objeto BitmapEncoder.

function (encoder) {
    

El codificador te permite acceder a los metadatos de imagen. Si aún no tienes un objeto codificador, consulta Cómo codificar una imagen nueva.

Paso 2: Crear una colección de metadatos que se van a establecer

Usa BitmapPropertySet para almacenar los elementos de metadatos que quieras establecer en el codificador. Cada elemento de metadatos es un par clave-valor.

La clave es una cadena que identifica el elemento de metadatos que se va a establecer. BitmapEncoder acepta algunas propiedades de Windows, además de consultas creadas con el lenguaje de consulta de metadatos de WIC. Para ver una lista de las propiedades de Windows admitidas, consulta Propiedades de Windows admitidas. Para ver un resumen de las consultas de metadatos de WIC admitidas, consulta Consultas de metadatos de formato de imagen nativa WI.

El valor es un BitmapTypedValue que te permite asociar el valor de metadatos real con un tipo de datos explícito (Windows.Foundation.PropertyType).

Establece los metadatos System.Photo.Orientation, que especifican la orientación de EXIF, en el valor 1, que especifica una orientación "normal", y asígnale el tipo de datos 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);     

Paso 3: Establecer los metadatos en el codificador

Cuando hayas creado todos los elementos de metadatos, establécelos en el codificador y continúa con la operación de codificación.

    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  Cada formato de imagen admite un conjunto distinto de elementos de metadatos. Si intentas establecer un elemento de metadatos o de propiedad no compatible con el formato de imagen, obtendrás un error. Por ejemplo, solo los formatos de imagen JPEG, TIFF y JPEG-XR admiten la propiedad System.Photo.Orientation.

 

Observaciones

Para establecer varias propiedades debes usar el mismo procedimiento que para establecer una sola, pero debes especificar varios pares nombre-valor en una lista. Este código establece Orientation y CameraModel al mismo tiempo.

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

Temas relacionados

Cómo codificar una imagen

Propiedades System.Photo

Cómo leer metadatos de imagen

Lenguaje de consulta de metadatos de WIC

Consultas de metadatos de formato de imagen nativa WIC

Propiedades de Windows admitidas