Поделиться через


Запись метаданных изображения (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. В случае разработки приложений для Windows 10 см. раздел последняя документация]

Здесь показано, как использовать объект BitmapEncoder для записи метаданных изображения. Метаданные можно записывать с помощью свойств Windows или языка запросов метаданных компонента обработки изображений Windows (WIC).

Подробнее о доступе к метаданным с помощью BitmapDecoder и BitmapEncoder см. в разделе Чтение метаданных изображения.

Примечание  API Windows.Storage.FileProperties можно использовать для получения и установки основных свойств Windows.StorageFile без открытия потока. Подробнее см. в разделе Получение свойств изображения.

 

Что необходимо знать

Технологии

Необходимые условия

Инструкции

Этап 1: Получение объекта кодировщика

Сначала запишите функцию, получающую объект BitmapEncoder.

function (encoder) {
    

Кодировщик предоставляет доступ к метаданным изображения. Если у вас нет объекта кодировщика, см. раздел Кодирование нового изображения.

Этап 2: Создание коллекции метаданных для установки

Используйте BitmapPropertySet для сохранения элементов метаданных, которые следует задать в кодировщике. Каждый элемент метаданных является парой "ключ — значение".

Ключ — это строка, определяющая элемент метаданных для установки. BitmapEncoder принимает некоторые свойства Windows, а также запросы, сконструированные с помощью языка запросов метаданных WIC. Список поддерживаемых свойств Windows см. в разделе Поддерживаемые свойства Windows. Список поддерживаемых запросов метаданных WIC см. в разделе Запросы метаданных собственного формата изображений WIC.

Значением является BitmapTypedValue, что позволяет сопоставить действительное значение метаданных с явно заданным типом данных (Windows.Foundation.PropertyType).

Задайте метаданные System.Photo.Orientation, указывающие ориентацию EXIF, со значением "1", которое указывает "нормальную" ориентацию, и присвойте им тип данных 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);     

Этап 3: Настройка метаданных в кодировщике

После того как построение всех элементов метаданных завершится, задайте их в кодировщике и продолжите выполнять кодирование.

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

Примечание  Каждый из форматов изображения поддерживает различный набор элементов метаданных. Если вы попытаетесь задать элемент свойства или метаданные, не поддерживаемые форматом изображения, произойдет ошибка. Например, только изображения JPEG, TIFF и JPEG-XR поддерживают свойство System.Photo.Orientation.

 

Примечания

Задание нескольких свойств выполняется так же, как задание одного свойства, но в списке необходимо указать несколько пар "имя-значение". Приведенный здесь код одновременно задает свойства Orientation и CameraModel.

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

Связанные разделы

Кодирование изображения

Свойства System.Photo

Чтение метаданных изображения

Язык запросов метаданных WIC

Запросы метаданных собственного формата изображений WIC

Поддерживаемые свойства Windows