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


Перечисление WICHeifHdrProperties (wincodec.h)

Задает свойства HDR изображения в формате HEIF.

Синтаксис

typedef enum WICHeifHdrProperties {
  WICHeifHdrMaximumLuminanceLevel = 0x1,
  WICHeifHdrMaximumFrameAverageLuminanceLevel = 0x2,
  WICHeifHdrMinimumMasteringDisplayLuminanceLevel = 0x3,
  WICHeifHdrMaximumMasteringDisplayLuminanceLevel = 0x4,
  WICHeifHdrCustomVideoPrimaries = 0x5,
  WICHeifHdrProperties_FORCE_DWORD = 0x7fffffff
} ;

Константы

 
WICHeifHdrMaximumLuminanceLevel
Значение: 0x1
[VT_UI2] Задает максимальный уровень яркости содержимого в Nits.
WICHeifHdrMaximumFrameAverageLuminanceLevel
Значение: 0x2
[VT_UI2] Задает максимальный средний уровень яркости для каждого кадра содержимого в Nits.
WICHeifHdrMinimumMasteringDisplayLuminanceLevel
Значение: 0x3
[VT_UI2] Указывает максимальную яркость дисплея, на котором было создано содержимое, в Nits.
WICHeifHdrMaximumMasteringDisplayLuminanceLevel
Значение: 0x4
[VT_UI2] Указывает максимальную яркость дисплея, на котором было создано содержимое, в Nits.
WICHeifHdrCustomVideoPrimaries
Значение: 0x5
[VT_BLOB] Задает пользовательские основные цвета для типа видеофайла. Значение этого свойства является структурой MT_CUSTOM_VIDEO_PRIMARIES, возвращаемой в виде массива байтов (VT_BLOB).
WICHeifHdrProperties_FORCE_DWORD
Значение: 0x7fffffff

Комментарии

Используйте IWicMetadataReader::GetValue , чтобы получить значение свойств, указанных в этом перечислении. Создайте экземпляр IWicMetadataReader с помощью CLSID_WICMetadataReader GUID. Вызовите IWicMetadataReader::GetMetadataFormat и убедитесь, что значение равно GUID_MetadataFormatHeifHDR , чтобы убедиться, что метаданные имеют формат HEIF HDR.

Не все HDR-изображения HEIF будут иметь все эти свойства в файле, поэтому средство чтения метаданных будет предоставлять только те свойства, которые доступны.

using namespace winrt;

std::optional<uint32_t> GetMaximumLuminanceLevelFromMetadataReader(_In_ IWICMetadataReader* metadataReader)
{
    std::optional<uint32_t> result;
    GUID metadataFormat;

    // Retrieve the format of the metadata used by this IWICMetadataReader
    check_hresult(metadataReader->GetMetadataFormat(&metadataFormat));

    // This function only handles HEIF HDR metadata
    if (metadataFormat != GUID_MetadataFormatHeifHDR)
    {
        throw_hresult(E_INVALIDARG);
    }

    PROPVARIANT variantId = {};
    PROPVARIANT variantValue = {};

    variantId.vt = VT_UI4;
    variantId.uiVal = WICHeifHdrMaximumLuminanceLevel;
    if (SUCCEEDED(metadataReader->GetValue(nullptr, &variantId, &variantValue)))
    {
        if (variantValue.vt == VT_UI4)
        {
            result = variantValue.uiVal;
        }
        PropVariantClear(&variantValue);
    }

    return result;
}

Требования

Требование Значение
Минимальная версия клиента Windows 10, версия 1903 [только классические приложения]
Минимальная версия сервера Windows Server версии 1903 [только классические приложения]
Верхняя часть wincodec.h