Implementando um codificador WIC-Enabled

Introdução

A implementação de um codificador wic (componente de imagem do Windows) requer a gravação de duas classes, como também é verdadeiro para implementar um decodificador WIC. As interfaces nessas classes correspondem diretamente às responsabilidades do codificador descritas na seção Codificação de Como funciona o componente de imagem do Windows.

Uma das classes fornece serviços de nível de contêiner e gerencia a serialização dos quadros de imagem individuais dentro do contêiner. Essa classe implementa a interface IWICBitmapEncoder . Se o formato de imagem der suporte a metadados no nível do contêiner, você também deverá implementar a interface IWICMetadataBlockWriter nessa classe.

A outra classe fornece serviços de nível de quadro e faz a codificação real dos bits de imagem para cada quadro no contêiner. Ele também itera pelos blocos de metadados de cada quadro e solicita os gravadores de metadados apropriados para serializar os blocos. Essa classe implementa a interface IWICBitmapFrameEncode e a interface IWICMetadataBlockWriter . Essa classe deve ter um membro IStream que a classe de nível de contêiner inicializa na instanciação, na qual o método Commit serializará os dados de quadro.

Em alguns casos, como formatos brutos, o autor do codec pode não querer que os aplicativos possam codificar ou recodificar para o formato bruto, pois a finalidade de um arquivo bruto é conter os dados do sensor exatamente como vieram da câmera. Nos casos em que o autor do codec não deseja habilitar a codificação, ainda é necessário implementar um codificador rudimentar apenas para habilitar a adição de metadados. Nesse caso, o codificador só precisa dar suporte a esses métodos necessários para gravar metadados e pode copiar os bits de imagem intocados do decodificador.

Referência

IWICBitmapEncoder

Conceitual

Implementando IWICDevelopRaw

Interfaces do codificador

Como escrever uma WIC-Enabled CODEC

Visão geral do componente de imagem do Windows