Compartilhar via


Implementando um decodificador de WIC-Enabled

A implementação de um decodificador wic (componente de imagem do Windows) requer a gravação de duas classes. As interfaces nessas classes correspondem diretamente às responsabilidades do decodificador descritas na seção Decodificação de Como funciona o componente de imagem do Windows.

Uma das classes fornece serviços de nível de contêiner e implementa a interface IWICBitmapDecoder . Se o formato de imagem der suporte a metadados no nível do contêiner, você também deverá implementar a interface IWICMetadataBlockReader nessa classe. É recomendável que você dê suporte à interface IWICBitmapCodecProgressNotification no decodificador e no codificador para dar suporte a uma melhor experiência do usuário.

A outra classe que você implementará fornece serviços de nível de quadro e faz a decodificação real dos bits de imagem para cada quadro no contêiner. Essa classe implementa a interface IWICBitmapFrameDecode e a interface IWICMetadataBlockReader . Se você estiver escrevendo um decodificador para um formato bruto, implemente também a interface IWICDevelopRaw nessa classe. Além das interfaces necessárias, é altamente recomendável implementar a interface IWICBitmapSourceTransform nessa classe para habilitar o melhor desempenho possível para o formato de imagem.

Um dos objetos fornecidos pelo WIC é o ImagingFactory. Frequentemente, você usa a interface IWICComponentFactory nesse objeto para criar vários componentes. Como ele é usado com frequência, você deve manter uma referência a ela como uma propriedade membro em suas classes de decodificador e codificador.

IWICImagingFactory* m_pImagingFactory = NULL;
IWICComponentFactory* m_pComponentFactory = NULL;
HRESULT hr;
      
hr = CoCreateInstance(CLSID_WICImagingFactory, NULL,
  CLSCTX_INPROC_SERVER, IID_IWICImagingFactory,
  (LPVOID*) m_pImagingFactory);

hr = m_pImagingFactory->QueryInterface(
  IID_IWICComponentFactory, (void**)&m_pComponentFactory);

Conceitual

Como funciona o componente de imagem do Windows

Interfaces de decodificador

Como escrever uma WIC-Enabled CODEC

Visão geral do componente de imagem do Windows

Visão geral dos metadados do WIC

Visão geral da codificação