Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O tópico apresenta o decodificador de bitmap, um componente de codec principal do Windows Imaging Component (WIC) usado para decodificar arquivos de imagem de um fluxo.
Este tópico contém as seguintes seções.
- Introdução
- Decodificadores de bitmap nativos
- Criando um decodificador de bitmap
- de extensibilidade do decodificador
- Tópicos relacionados
Introdução
Os decodificadores de bitmap podem ser vistos como o contêiner externo de uma imagem digital e fornecem acesso a propriedades globais e quadros de imagem. Alguns formatos de imagem suportam miniaturas globais, visualizações, contextos de cores ou metadados, enquanto outros fornecem essas propriedades apenas no nível do quadro. Observe, no entanto, que muitos dos formatos de imagem padrão não suportam essas propriedades globais. Como tal, muitas das implementações de codec nativo fornecidas pelo WIC não suportam a maioria dessas propriedades globais. Consulte a tabela na seção Decodificadores de bitmap nativos deste tópico para obter informações sobre o suporte a propriedades globais.
No WIC, os decodificadores de bitmap são representados pela interfaceIWICBitmapDecoder e fornecem acesso a essas propriedades globais do bitmap e, mais importante, aos quadros que ele contém. A interfaceIWICBitmapFrameDecode representa um quadro de bitmap individual e é discutida em detalhes no Bitmap Sources Overview.
Decodificadores de bitmap nativos
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 alta gama dinâmica. 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 oferecer suporte a uma propriedade, como miniaturas no nível global, o formato de imagem pode oferecer suporte a essas propriedades no nível de quadro individual.
| Formato de imagem | Nome CLSID | Miniaturas | Antevisõ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 |
| Fotografia HD | CLSID_WICWmpDecoder | Não | Sim | Não | Não |
Criando um decodificador de 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 suportados, bem como os quadros de imagem. A fábrica de imagens WIC, IWICImagingFactory, fornece vários métodos para criar decodificadores de bitmap. Os seguintes métodos de fábrica são fornecidos para criar decodificadores de bitmap.
- CriarDecodificador
- CreateDecoderFromFileHandle
- CreateDecoderFromFilename
- CreateDecoderFromStream
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 descodificador
Um dos principais recursos do WIC é uma estrutura de extensibilidade que permite que os desenvolvedores de codecs desenvolvam seus próprios codecs de imagem e obtenham o mesmo suporte de plataforma que as implementações nativas de codecs de imagem. Um conjunto único e consistente de interfaces é usado para todo o processamento de imagem, independentemente do formato da imagem. Qualquer aplicativo usando WIC recebe 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 Component Development. Para obter mais informações sobre o desenvolvimento do decodificador, consulte Implementando um WIC-Enabled Decodificador.
Tópicos relacionados
-
Conceptual
-
Visão geral do componente Windows Imaging