Win32 API 日本語リファレンス
ホームGraphics.Imaging › WICHeifHdrProperties

WICHeifHdrProperties

列挙型
基底型i4

メンバー 5

名前10進16進説明
WICHeifHdrMaximumLuminanceLevel10x1[VT_UI2] コンテンツの最大輝度レベルを Nit 単位で指定します。
WICHeifHdrMaximumFrameAverageLuminanceLevel20x2[VT_UI2] コンテンツのフレームあたりの最大平均輝度レベルを Nit 単位で指定します。
WICHeifHdrMinimumMasteringDisplayLuminanceLevel30x3[VT_UI2] コンテンツが作成されたディスプレイの最大輝度を Nit 単位で指定します。
WICHeifHdrMaximumMasteringDisplayLuminanceLevel40x4[VT_UI2] コンテンツが作成されたディスプレイの最大輝度を Nit 単位で指定します。
WICHeifHdrCustomVideoPrimaries50x5[VT_BLOB] ビデオ メディア タイプのカスタム カラー プライマリを指定します。このプロパティの値は MT_CUSTOM_VIDEO_PRIMARIES構造体で、バイト配列 (VT_BLOB) として返されます。

公式ドキュメント

High Efficiency Image Format (HEIF) 画像の HDR プロパティを指定します。

解説(Remarks)

この列挙型で指定されるプロパティの値を取得するには、IWicMetadataReader::GetValue を使用します。IWicMetadataReader インスタンスは GUID CLSID_WICMetadataReader を使用して作成します。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;

    // この IWICMetadataReader が使用するメタデータの形式を取得します
    check_hresult(metadataReader->GetMetadataFormat(&metadataFormat));

    // この関数は HEIF HDR メタデータのみを処理します
    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;
}
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum WICHeifHdrProperties : int {
    WICHeifHdrMaximumLuminanceLevel = 1,
    WICHeifHdrMaximumFrameAverageLuminanceLevel = 2,
    WICHeifHdrMinimumMasteringDisplayLuminanceLevel = 3,
    WICHeifHdrMaximumMasteringDisplayLuminanceLevel = 4,
    WICHeifHdrCustomVideoPrimaries = 5
} WICHeifHdrProperties;
public enum WICHeifHdrProperties : int
{
    WICHeifHdrMaximumLuminanceLevel = 1,
    WICHeifHdrMaximumFrameAverageLuminanceLevel = 2,
    WICHeifHdrMinimumMasteringDisplayLuminanceLevel = 3,
    WICHeifHdrMaximumMasteringDisplayLuminanceLevel = 4,
    WICHeifHdrCustomVideoPrimaries = 5,
}
Public Enum WICHeifHdrProperties As Integer
    WICHeifHdrMaximumLuminanceLevel = 1
    WICHeifHdrMaximumFrameAverageLuminanceLevel = 2
    WICHeifHdrMinimumMasteringDisplayLuminanceLevel = 3
    WICHeifHdrMaximumMasteringDisplayLuminanceLevel = 4
    WICHeifHdrCustomVideoPrimaries = 5
End Enum
import enum

class WICHeifHdrProperties(enum.IntEnum):
    WICHeifHdrMaximumLuminanceLevel = 1
    WICHeifHdrMaximumFrameAverageLuminanceLevel = 2
    WICHeifHdrMinimumMasteringDisplayLuminanceLevel = 3
    WICHeifHdrMaximumMasteringDisplayLuminanceLevel = 4
    WICHeifHdrCustomVideoPrimaries = 5
// WICHeifHdrProperties
pub const WICHeifHdrMaximumLuminanceLevel: i32 = 1;
pub const WICHeifHdrMaximumFrameAverageLuminanceLevel: i32 = 2;
pub const WICHeifHdrMinimumMasteringDisplayLuminanceLevel: i32 = 3;
pub const WICHeifHdrMaximumMasteringDisplayLuminanceLevel: i32 = 4;
pub const WICHeifHdrCustomVideoPrimaries: i32 = 5;
// WICHeifHdrProperties
const (
	WICHeifHdrMaximumLuminanceLevel int32 = 1
	WICHeifHdrMaximumFrameAverageLuminanceLevel int32 = 2
	WICHeifHdrMinimumMasteringDisplayLuminanceLevel int32 = 3
	WICHeifHdrMaximumMasteringDisplayLuminanceLevel int32 = 4
	WICHeifHdrCustomVideoPrimaries int32 = 5
)
const
  WICHeifHdrMaximumLuminanceLevel = 1;
  WICHeifHdrMaximumFrameAverageLuminanceLevel = 2;
  WICHeifHdrMinimumMasteringDisplayLuminanceLevel = 3;
  WICHeifHdrMaximumMasteringDisplayLuminanceLevel = 4;
  WICHeifHdrCustomVideoPrimaries = 5;
// WICHeifHdrProperties
pub const WICHeifHdrMaximumLuminanceLevel: i32 = 1;
pub const WICHeifHdrMaximumFrameAverageLuminanceLevel: i32 = 2;
pub const WICHeifHdrMinimumMasteringDisplayLuminanceLevel: i32 = 3;
pub const WICHeifHdrMaximumMasteringDisplayLuminanceLevel: i32 = 4;
pub const WICHeifHdrCustomVideoPrimaries: i32 = 5;
const
  WICHeifHdrMaximumLuminanceLevel* = 1
  WICHeifHdrMaximumFrameAverageLuminanceLevel* = 2
  WICHeifHdrMinimumMasteringDisplayLuminanceLevel* = 3
  WICHeifHdrMaximumMasteringDisplayLuminanceLevel* = 4
  WICHeifHdrCustomVideoPrimaries* = 5
enum WICHeifHdrProperties : int {
    WICHeifHdrMaximumLuminanceLevel = 1,
    WICHeifHdrMaximumFrameAverageLuminanceLevel = 2,
    WICHeifHdrMinimumMasteringDisplayLuminanceLevel = 3,
    WICHeifHdrMaximumMasteringDisplayLuminanceLevel = 4,
    WICHeifHdrCustomVideoPrimaries = 5,
}
#define global WICHeifHdrMaximumLuminanceLevel                 0x1
#define global WICHeifHdrMaximumFrameAverageLuminanceLevel     0x2
#define global WICHeifHdrMinimumMasteringDisplayLuminanceLevel 0x3
#define global WICHeifHdrMaximumMasteringDisplayLuminanceLevel 0x4
#define global WICHeifHdrCustomVideoPrimaries                  0x5