Panoramica della decodifica
L'argomento presenta il decodificatore bitmap, un componente codec WIC (Windows Imaging Component) di base usato per decodificare i file di immagine da un flusso.
In questo argomento sono contenute le sezioni seguenti.
- Introduzione
- Decodificatori bitmap nativi
- Creazione di un decodificatore bitmap
- Estendibilità del decodificatore
- Argomenti correlati
Introduzione
I decodificatori bitmap possono essere visualizzati come contenitore esterno di un'immagine digitale e consentono l'accesso alle proprietà globali e ai fotogrammi di immagine. Alcuni formati di immagine supportano anteprime globali, anteprime, contesti di colore o metadati, mentre altri forniscono queste proprietà solo a livello di frame. Si noti, tuttavia, molti dei formati di immagine standard non supportano queste proprietà globali. Di conseguenza, molte implementazioni codec native fornite da WIC non supportano la maggior parte di queste proprietà globali. Per informazioni sul supporto delle proprietà globali, vedere la tabella nella sezione Decodificatori bitmap nativi di questo argomento.
In WIC, i decodificatori bitmap sono rappresentati dall'interfaccia IWICBitmapDecoder e forniscono l'accesso a queste proprietà globali della bitmap e, più importante, i fotogrammi contenuti. L'interfaccia IWICBitmapFrameDecode rappresenta un singolo frame bitmap ed è descritta in dettaglio nella panoramica delle origini bitmap.
Decodificatori bitmap nativi
WIC offre diverse implementazioni native dell'interfaccia IWICBitmapDecoder per i formati di immagine Web standard e il formato HD Photo a intervalli dinamici elevati. Nella tabella seguente sono elencati i decodificatori nativi disponibili, il nome dell'identificatore di classe e il supporto per le proprietà globali. Anche se una funzionalità potrebbe non supportare una proprietà come le anteprime a livello globale, il formato dell'immagine può supportare tali proprietà a livello di singolo fotogramma.
Formato immagine | Nome CLSID | Anteprime | Anteprime | Contesti di colore | Metadati |
---|---|---|---|---|---|
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 |
Creazione di un decodificatore bitmap
Per decodificare un'immagine usando WIC, è prima necessario creare un'istanza di IWICBitmapDecoder per il formato di immagine di destinazione. L'istanza del decodificatore consente di accedere alle proprietà e ai metadati globali, se supportati, nonché ai fotogrammi immagine. La factory di creazione di immagini WIC , IWICImagingFactory, offre diversi metodi per la creazione di decodificatori bitmap. Per creare decodificatori bitmap vengono forniti i metodi factory seguenti.
Il codice seguente illustra come creare un decodificatore bitmap usando un nome file di immagine e recuperare il primo fotogramma dell'immagine.
// 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);
}
Estendibilità del decodificatore
Una delle funzionalità principali di WIC è un framework di estendibilità che consente agli sviluppatori di codec di sviluppare codec di immagine personalizzati e ottenere lo stesso supporto della piattaforma delle implementazioni native dei codec immagine. Un singolo set coerente di interfacce viene usato per tutta l'elaborazione delle immagini, indipendentemente dal formato dell'immagine. Qualsiasi applicazione che usa WIC ottiene il supporto automatico per i nuovi formati di immagine non appena viene installato il codec. Per altre informazioni sullo sviluppo di codec, vedere gli argomenti in Sviluppo di componenti. Per altre informazioni sullo sviluppo di decodificatori, vedere Implementazione di un decodificatore WIC-Enabled.
Argomenti correlati
-
Informazioni concettuali