Implémentation d’un décodeur WIC-Enabled
L’implémentation d’un décodeur wic (Windows Imaging Component) nécessite l’écriture de deux classes. Les interfaces de ces classes correspondent directement aux responsabilités du décodeur décrites dans la section Décodage du fonctionnement du composant d’acquisition d’images Windows.
L’une des classes fournit des services au niveau du conteneur et implémente l’interface IWICBitmapDecoder . Si votre format d’image prend en charge les métadonnées au niveau du conteneur, vous devez également implémenter l’interface IWICMetadataBlockReader sur cette classe. Il est recommandé de prendre en charge l’interface IWICBitmapCodecProgressNotification sur le décodeur et l’encodeur pour prendre en charge une meilleure expérience utilisateur.
L’autre classe que vous allez implémenter fournit des services au niveau de l’image et effectue le décodage réel des bits d’image pour chaque image dans le conteneur. Cette classe implémente l’interface IWICBitmapFrameDecode et l’interface IWICMetadataBlockReader . Si vous écrivez un décodeur pour un format brut, vous implémentez également l’interface IWICDevelopRaw sur cette classe. En plus des interfaces requises, il est vivement recommandé d’implémenter l’interface IWICBitmapSourceTransform sur cette classe pour obtenir les meilleures performances possibles pour votre format d’image.
L’un des objets fournis par WIC est ImagingFactory. Vous utilisez fréquemment l’interface IWICComponentFactory sur cet objet pour créer différents composants. Étant donné qu’il est fréquemment utilisé, vous devez conserver une référence à celui-ci en tant que propriété membre sur vos classes de décodeur et d’encodeur.
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);
Rubriques connexes
-
Conceptuel