Compartilhar via


Enumeração WICHeifHdrProperties (wincodec.h)

Especifica as propriedades HDR de uma imagem HEIF (Formato de Imagem de Alta Eficiência).

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 o nível máximo de luminância do conteúdo em Nits.
WICHeifHdrMaximumFrameAverageLuminanceLevel
Valor: 0x2
[VT_UI2] Especifica o nível máximo de luminância média por quadro do conteúdo em Nits.
WICHeifHdrMinimumMasteringDisplayLuminanceLevel
Valor: 0x3
[VT_UI2] Especifica a luminância máxima da exibição na qual o conteúdo foi criado, em Nits.
WICHeifHdrMaximumMasteringDisplayLuminanceLevel
Valor: 0x4
[VT_UI2] Especifica a luminância máxima da exibição na qual o conteúdo foi criado, em Nits.
WICHeifHdrCustomVideoPrimaries
Valor: 0x5
[VT_BLOB] Especifica as primárias de cores personalizadas para um tipo de mídia de vídeo. O valor dessa propriedade é uma estrutura MT_CUSTOM_VIDEO_PRIMARIES, retornada como uma matriz de bytes (VT_BLOB).
WICHeifHdrProperties_FORCE_DWORD
Valor: 0x7fffffff

Comentários

Use IWicMetadataReader::GetValue para recuperar o valor das propriedades especificadas com essa enumeração. Instancie a instância IWicMetadataReader usando o guid CLSID_WICMetadataReader. Chame IWicMetadataReader::GetMetadataFormat e confirme se o valor é GUID_MetadataFormatHeifHDR para verificar se o formato de metadados são metadados HEIF HDR.

Nem todas as imagens HDR HEIF terão todas essas propriedades presentes no arquivo, portanto, somente as propriedades disponíveis serão expostas pelo leitor de metadados.

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 Valor
Cliente mínimo com suporte Windows 10, versão 1903 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server, versão 1903 [somente aplicativos da área de trabalho]
Cabeçalho wincodec.h