Cenni preliminari sulla decodifica
L'argomento presenta il decodificatore bitmap, un componente codec Windows Imaging Component (WIC) di base usato per decodificare i file di immagine da un flusso.
Questo argomento contiene 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 immagine. Alcuni formati di immagine supportano miniature globali, anteprime, spazi di colore o metadati, mentre altri forniscono queste proprietà solo a livello di fotogramma. Si noti, tuttavia, che molti dei formati di immagine standard non supportano queste proprietà globali. Di conseguenza, molte implementazioni di 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'interfacciaIWICBitmapDecodere fornisce l'accesso a queste proprietà globali della bitmap e, soprattutto, i fotogrammi contenuti. L'interfacciaIWICBitmapFrameDecoderappresenta un singolo frame bitmap ed è descritta in dettaglio nella panoramica delle origini bitmap .
Decodificatori bitmap nativi
WIC offre diverse implementazioni native del interfaccia IWICBitmapDecoder per i formati standard di immagini Web e il formato HD Photo ad alto intervallo dinamico. 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 | Miniature | Anteprima | I contesti del 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 del IWICBitmapDecoder per il formato di immagine di destinazione. L'istanza del decodificatore consente di accedere alle proprietà globali e ai metadati, se supportati, nonché ai fotogrammi immagine. La fabbrica di immagini WIC, IWICImagingFactory, fornisce diversi metodi per creare decodificatori bitmap. I seguenti metodi di fabbrica sono forniti per creare decodificatori bitmap.
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à di base di WIC è un framework di estendibilità che consente agli sviluppatori di codec di sviluppare codec immagine personalizzati e ottenere lo stesso supporto della piattaforma delle implementazioni native dei codec immagine. Un singolo set di interfacce coerente viene usato per l'elaborazione di tutte le 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 ulteriori 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
-
concettuale
-
Panoramica Componenti di Windows Imaging