Condividi tramite


Implementazione di un decodificatore WIC-Enabled

L'implementazione di un decodificatore Windows Imaging Component (WIC) richiede la scrittura di due classi. Le interfacce di queste classi corrispondono direttamente ai compiti del decodificatore descritti nella sezione Decodifica di Come funziona il componente Immagini di Windows.

Una delle classi fornisce servizi a livello di contenitore e implementa l'interfaccia IWICBitmapDecoder. Se il formato dell'immagine supporta i metadati a livello di contenitore, è necessario implementare anche l'interfaccia IWICMetadataBlockReader in questa classe. È consigliabile supportare l'interfaccia IWICBitmapCodecProgressNotification sul decodificatore e sul codificatore per supportare un'esperienza utente migliore.

L'altra classe che implementerà fornisce servizi a livello di frame ed esegue la decodifica effettiva dei bit dell'immagine per ogni fotogramma nel contenitore. Questa classe implementa l'interfaccia IWICBitmapFrameDecode e l'interfaccia IWICMetadataBlockReader. Se stai scrivendo un decodificatore per un formato non elaborato, implementi anche l'interfaccia IWICDevelopRaw in questa classe. Oltre alle interfacce necessarie, è consigliabile implementare l'interfaccia IWICBitmapSourceTransform in questa classe per consentire le migliori prestazioni possibili per il formato dell'immagine.

Uno degli oggetti forniti da WIC è il ImagingFactory. Spesso si usa l'interfacciaIWICComponentFactory in questo oggetto per creare vari componenti. Poiché viene usato di frequente, è consigliabile conservare un riferimento a esso come proprietà membro nelle classi del decodificatore e del codificatore.

IWICImagingFactory* m_pImagingFactory = NULL;
IWICComponentFactory* m_pComponentFactory = NULL;
HRESULT hr;
      
hr = CoCreateInstance(CLSID_WICImagingFactory, NULL,
  CLSCTX_INPROC_SERVER, IID_IWICImagingFactory,
  (LPVOID*) m_pImagingFactory);

hr = m_pImagingFactory->QueryInterface(
  IID_IWICComponentFactory, (void**)&m_pComponentFactory);

Concettuale

funzionamento del componente Windows Imaging

Interfacce del decodificatore

Come scrivere un WIC-Enabled CODEC

Panoramica componente Windows Imaging

panoramica dei metadati WIC

panoramica della codifica