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]ビデオ メディアの種類のユーザー設定の色のプライマリを指定します。 このプロパティの値は、バイト配列 ( VT_BLOB) として返されるMT_CUSTOM_VIDEO_PRIMARIES構造体です。
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 [デスクトップ アプリのみ]
Header wincodec.h