Partager via


Énumération WICHeifHdrProperties (wincodec.h)

Spécifie les propriétés HDR d’une image HEIF (High Efficiency Image Format).

Syntax

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

Constantes

 
WICHeifHdrMaximumLuminanceLevel
Valeur : 0x1
[VT_UI2] Spécifie le niveau de luminance maximal du contenu dans Nits.
WICHeifHdrMaximumFrameAverageLuminanceLevel
Valeur : 0x2
[VT_UI2] Spécifie le niveau de luminosité moyen maximal par image du contenu dans nits.
WICHeifHdrMinimumMasteringDisplayLuminanceLevel
Valeur : 0x3
[VT_UI2] Spécifie la luminosité maximale de l’affichage sur lequel le contenu a été créé, dans Nits.
WICHeifHdrMaximumMasteringDisplayLuminanceLevel
Valeur : 0x4
[VT_UI2] Spécifie la luminosité maximale de l’affichage sur lequel le contenu a été créé, dans Nits.
WICHeifHdrCustomVideoPrimaries
Valeur : 0x5
[VT_BLOB] Spécifie des couleurs primaires personnalisées pour un type de média vidéo. La valeur de cette propriété est une structure MT_CUSTOM_VIDEO_PRIMARIES, retournée sous la forme d’un tableau d’octets (VT_BLOB).
WICHeifHdrProperties_FORCE_DWORD
Valeur : 0x7fffffff

Remarques

Utilisez IWicMetadataReader ::GetValue pour récupérer la valeur des propriétés spécifiées avec cette énumération. Instanciez le instance IWicMetadataReader à l’aide du CLSID_WICMetadataReader GUID. Appelez IWicMetadataReader ::GetMetadataFormat et vérifiez que la valeur est GUID_MetadataFormatHeifHDR pour vérifier que le format de métadonnées est des métadonnées HDR HEIF.

Toutes les images HDR HEIF n’ont pas toutes ces propriétés présentes dans le fichier, donc seules les propriétés disponibles sont exposées par le lecteur de métadonnées.

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10, version 1903 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server, version 1903 [applications de bureau uniquement]
En-tête wincodec.h