WICHeifHdrProperties 枚举 (wincodec.h)

指定高效图像格式 (HEIF) 图像的 HDR 属性。

语法

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 检索使用此枚举指定的属性的值。 使用 GUID CLSID_WICMetadataReader实例化 IWicMetadataReader 实例。 调用 IWicMetadataReader::GetMetadataFormat 并确认值 GUID_MetadataFormatHeifHDR ,以验证元数据格式是否为 HEIF HDR 元数据。

并非所有 HEIF HDR 图像都会在文件中显示所有这些属性,因此元数据读取器将仅公开可用的这些属性。

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