Condividi tramite


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

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
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 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.

Informazioni concettuali

Panoramica del componente Windows Imaging

Panoramica della codifica

Sviluppo di componenti