Перечисление 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 |