Condividi tramite


Enumerazione WICHeifHdrProperties (wincodec.h)

Specifica le proprietà HDR di un'immagine HEIF (High Efficiency Image Format).

Sintassi

typedef enum WICHeifHdrProperties {
  WICHeifHdrMaximumLuminanceLevel = 0x1,
  WICHeifHdrMaximumFrameAverageLuminanceLevel = 0x2,
  WICHeifHdrMinimumMasteringDisplayLuminanceLevel = 0x3,
  WICHeifHdrMaximumMasteringDisplayLuminanceLevel = 0x4,
  WICHeifHdrCustomVideoPrimaries = 0x5,
  WICHeifHdrProperties_FORCE_DWORD = 0x7fffffff
} ;

Costanti

 
WICHeifHdrMaximumLuminanceLevel
Valore: 0x1
[VT_UI2] Specifica il livello massimo di luminanza del contenuto in Nits.
WICHeifHdrMaximumFrameAverageLuminanceLevel
Valore: 0x2
[VT_UI2] Specifica il livello di dominanza media massima per fotogramma del contenuto in Nits.
WICHeifHdrMinimumMasteringDisplayLuminanceLevel
Valore: 0x3
[VT_UI2] Specifica la luminanza massima della visualizzazione in cui è stato creato il contenuto, in Nits.
WICHeifHdrMaximumMasteringDisplayLuminanceLevel
Valore: 0x4
[VT_UI2] Specifica la luminanza massima della visualizzazione in cui è stato creato il contenuto, in Nits.
WICHeifHdrCustomVideoPrimaries
Valore: 0x5
[VT_BLOB] Specifica le primarie di colore personalizzate per un tipo di supporto video. Il valore di questa proprietà è una struttura MT_CUSTOM_VIDEO_PRIMARIES, restituita come matrice di byte (VT_BLOB).
WICHeifHdrProperties_FORCE_DWORD
Valore: 0x7fffffff

Commenti

Usare IWicMetadataReader::GetValue per recuperare il valore delle proprietà specificate con questa enumerazione. Creare un'istanza di IWicMetadataReader usando il GUID CLSID_WICMetadataReader. Chiamare IWicMetadataReader::GetMetadataFormat e verificare che il valore sia GUID_MetadataFormatHeifHDR per verificare che il formato dei metadati sia metadati HDR HEIF.

Non tutte le immagini HDR HEIF avranno tutte queste proprietà presenti nel file, quindi solo le proprietà disponibili verranno esposte dal lettore di metadati.

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;
}

Requisiti

Requisito Valore
Client minimo supportato Windows 10 versione 1903 [solo app desktop]
Server minimo supportato Windows Server, versione 1903 [solo app desktop]
Intestazione wincodec.h