Introducción a la descodificación
En el tema se presenta el descodificador de mapa de bits, un componente de códec principal de Componente de imágenes de Windows (WIC) que se usa para descodificar archivos de imagen de una secuencia.
En este tema se incluyen las siguientes secciones.
- Introducción
- Descodificadores de mapa de bits nativos
- Creación de un descodificador de mapa de bits
- Extensibilidad del descodificador
- Temas relacionados
Introducción
Los descodificadores de mapa de bits se pueden ver como el contenedor externo de una imagen digital y proporcionan acceso a las propiedades globales y los marcos de imagen. Algunos formatos de imagen admiten miniaturas globales, vistas previas, contextos de color o metadatos, mientras que otros proporcionan estas propiedades solo en el nivel de marco. Sin embargo, tenga en cuenta que muchos de los formatos de imagen estándar no admiten estas propiedades globales. Por lo tanto, muchas de las implementaciones nativas de códec proporcionadas por WIC no admiten la mayoría de estas propiedades globales. Consulte la tabla de la sección Descodificadores de mapa de bits nativo de este tema para obtener información sobre la compatibilidad con propiedades globales.
En WIC, los descodificadores de mapa de bits se representan mediante la interfaz IWICBitmapDecoder y proporcionan acceso a estas propiedades globales del mapa de bits y, lo que es más importante, los marcos que contiene. La interfaz IWICBitmapFrameDecode representa un marco de mapa de bits individual y se describe en detalle en la Información general sobre orígenes de mapa de bits.
Descodificadores de mapa de bits nativos
WIC proporciona varias implementaciones nativas de la interfaz IWICBitmapDecoder para los formatos de imagen web estándar y el formato hd Photo de alta gama dinámica. En la tabla siguiente se enumeran los descodificadores nativos disponibles, el nombre del identificador de clase y la compatibilidad con las propiedades globales. Aunque es posible que una característica no admita una propiedad como miniaturas en el nivel global, el formato de imagen puede admitir estas propiedades en el nivel de marco individual.
Formato de imágenes | Nombre clSID | Miniaturas | Versiones Preliminares | Contextos de color | Metadatos |
---|---|---|---|---|---|
BMP | CLSID_WICBmpDecoder | No | No | No | No |
GIF | CLSID_WICGifDecoder | No | No | No | Sí |
ICO | CLSID_WICIcoDecoder | No | No | No | No |
JPEG | CLSID_WICJpegDecoder | No | No | No | No |
PNG | CLSID_WICPngDecoder | No | No | No | No |
TIFF | CLSID_WICTiffDecoder | No | No | No | No |
Foto HD | CLSID_WICWmpDecoder | No | Sí | No | No |
Creación de un descodificador de mapa de bits
Para descodificar una imagen mediante WIC, primero debe crear una instancia del IWICBitmapDecoder para el formato de imagen de destino. La instancia de descodificador permite acceder a las propiedades globales y los metadatos, si se admiten, así como a los marcos de imagen. La factoría de imágenes WIC, IWICImagingFactory, proporciona varios métodos para crear descodificadores de mapa de bits. Se proporcionan los métodos de fábrica siguientes para crear descodificadores de mapa de bits.
En el código siguiente se muestra cómo crear un descodificador de mapa de bits mediante un nombre de archivo de imagen y recuperar el primer marco de la imagen.
// 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);
}
Extensibilidad del descodificador
Una de las características principales de WIC es un marco de extensibilidad que permite a los desarrolladores de códecs desarrollar sus propios códecs de imagen y obtener la misma compatibilidad con la plataforma que las implementaciones nativas de códecs de imagen. Se usa un único conjunto coherente de interfaces para todo el procesamiento de imágenes, independientemente del formato de imagen. Cualquier aplicación que use WIC obtiene compatibilidad automática con nuevos formatos de imagen en cuanto se instale el códec. Para obtener más información sobre el desarrollo de códecs, consulte los temas de Desarrollo de componentes. Para obtener más información sobre el desarrollo del descodificador, consulte Implementación de un descodificador de WIC-Enabled.
Temas relacionados