Compartir a través de


Enumeración WICHeifHdrProperties (wincodec.h)

Especifica las propiedades HDR de una imagen de formato de imagen de alta eficiencia (HEIF).

Syntax

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

Constantes

 
WICHeifHdrMaximumLuminanceLevel
Valor: 0x1
[VT_UI2] Especifica el nivel máximo de luminancia del contenido en Nits.
WICHeifHdrMaximumFrameAverageLuminanceLevel
Valor: 0x2
[VT_UI2] Especifica el nivel máximo de luminancia por fotograma del contenido en Nits.
WICHeifHdrMinimumMasteringDisplayLuminanceLevel
Valor: 0x3
[VT_UI2] Especifica la luminancia máxima de la pantalla en la que se creó el contenido, en Nits.
WICHeifHdrMaximumMasteringDisplayLuminanceLevel
Valor: 0x4
[VT_UI2] Especifica la luminancia máxima de la pantalla en la que se creó el contenido, en Nits.
WICHeifHdrCustomVideoPrimaries
Valor: 0x5
[VT_BLOB] Especifica los colores personalizados principales para un tipo de medio de vídeo. El valor de esta propiedad es una estructura de MT_CUSTOM_VIDEO_PRIMARIES, que se devuelve como una matriz de bytes (VT_BLOB).
WICHeifHdrProperties_FORCE_DWORD
Valor: 0x7fffffff

Comentarios

Use IWicMetadataReader::GetValue para recuperar el valor de las propiedades especificadas con esta enumeración. Cree una instancia de la instancia de IWicMetadataReader mediante el GUID CLSID_WICMetadataReader. Llame a IWicMetadataReader::GetMetadataFormat y confirme que el valor es GUID_MetadataFormatHeifHDR para comprobar que el formato de metadatos es metadatos HEIF HDR.

No todas las imágenes HDR HEIF tendrán todas estas propiedades presentes en el archivo, por lo que solo el lector de metadatos expondrá las propiedades disponibles.

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10, versión 1903 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server, versión 1903 [solo aplicaciones de escritorio]
Encabezado wincodec.h