다음을 통해 공유


WICHeifHdrProperties 열거형(wincodec.h)

HEIF(고효율 이미지 형식) 이미지의 HDR 속성을 지정합니다.

Syntax

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] 비디오 미디어 형식에 대한 사용자 지정 색 주체를 지정합니다. 이 속성의 값은 바이트( VT_BLOB)의 배열로 반환되는 MT_CUSTOM_VIDEO_PRIMARIES 구조체입니다.
WICHeifHdrProperties_FORCE_DWORD
값: 0x7fffffff

설명

IWicMetadataReader::GetValue를 사용하여 이 열거형으로 지정된 속성의 값을 검색합니다. GUID CLSID_WICMetadataReader 사용하여 IWicMetadataReader instance 인스턴스화합니다. 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