Compartilhar via


Visão geral da decodificação

O tópico apresenta o decodificador de bitmap, um componente de codec principal do WIC (Componente de Imagem do Windows) usado para decodificar arquivos de imagem de um fluxo.

Este tópico inclui as seções a seguir.

Introdução

Os decodificadores de bitmap podem ser exibidos como o contêiner externo de uma imagem digital e fornecem acesso a propriedades globais e quadros de imagem. Alguns formatos de imagem dão suporte a miniaturas globais, visualizações, contextos de cores ou metadados, enquanto outros fornecem essas propriedades apenas no nível do quadro. No entanto, observe que muitos dos formatos de imagem padrão não dão suporte a essas propriedades globais. Dessa forma, muitas das implementações de codec nativo fornecidas pelo WIC não dão suporte à maioria dessas propriedades globais. Consulte a tabela na seção Decodificadores de Bitmap Nativos deste tópico para obter informações sobre o suporte à propriedade global.

No WIC, os decodificadores de bitmap são representados pela interface IWICBitmapDecoder e fornecem acesso a essas propriedades globais do bitmap e, mais importante, aos quadros que ele contém. A interface IWICBitmapFrameDecode representa um quadro bitmap individual e é discutida detalhadamente na Visão geral das fontes do Bitmap.

Decodificadores de Bitmap nativos

O WIC fornece várias implementações nativas da interface IWICBitmapDecoder para os formatos de imagem da Web padrão e o formato de foto HD de alto intervalo dinâmico. A tabela a seguir lista os decodificadores nativos disponíveis, o nome do identificador de classe e o suporte para propriedades globais. Embora um recurso possa não dar suporte a uma propriedade como miniaturas no nível global, o formato de imagem pode dar suporte a essas propriedades no nível de quadro individual.

Formato de imagem Nome CLSID Miniaturas Visualizações Contextos de cores Metadados
BMP CLSID_WICBmpDecoder Não Não Não Não
GIF CLSID_WICGifDecoder Não Não Não Sim
ICO CLSID_WICIcoDecoder Não Não Não Não
JPEG CLSID_WICJpegDecoder Não Não Não Não
PNG CLSID_WICPngDecoder Não Não Não Não
TIFF CLSID_WICTiffDecoder Não Não Não Não
Foto HD CLSID_WICWmpDecoder Não Sim Não Não

 

Criando um decodificador bitmap

Para decodificar uma imagem usando WIC, primeiro você precisa criar uma instância do IWICBitmapDecoder para o formato de imagem de destino. A instância do decodificador permite que você acesse as propriedades globais e os metadados, se houver suporte, bem como os quadros de imagem. A fábrica de imagens WIC, IWICImagingFactory, fornece vários métodos para criar decodificadores de bitmap. Os métodos de fábrica a seguir são fornecidos para criar decodificadores de bitmap.

O código a seguir demonstra como criar um decodificador de bitmap usando um nome de arquivo de imagem e recuperar o primeiro quadro da imagem.

   // Create a decoder
   IWICBitmapDecoder *pDecoder = NULL;

   hr = m_pIWICFactory->CreateDecoderFromFilename(
       szFileName,                      // Image to be decoded
       NULL,                            // Do not prefer a particular vendor
       GENERIC_READ,                    // Desired read access to the file
       WICDecodeMetadataCacheOnDemand,  // Cache metadata when needed
       &pDecoder                        // Pointer to the decoder
       );

   // Retrieve the first frame of the image from the decoder
   IWICBitmapFrameDecode *pFrame = NULL;

   if (SUCCEEDED(hr))
   {
       hr = pDecoder->GetFrame(0, &pFrame);
   }

Extensibilidade do decodificador

Um dos principais recursos do WIC é uma estrutura de extensibilidade que permite que os desenvolvedores de codec desenvolvam seus próprios codecs de imagem e obtenham o mesmo suporte de plataforma que as implementações nativas de codecs de imagem. Um único conjunto consistente de interfaces é usado para todo o processamento de imagem, independentemente do formato de imagem. Qualquer aplicativo que usa WIC obtém suporte automático para novos formatos de imagem assim que o codec é instalado. Para obter mais informações sobre o desenvolvimento de codec, consulte os tópicos em Desenvolvimento de Componentes. Para obter mais informações sobre o desenvolvimento do decodificador, consulte Implementando um decodificador de WIC-Enabled.

Conceitual

Visão geral do componente de imagem do Windows

Visão geral da codificação

Desenvolvimento de componentes