Vue d’ensemble du décodage
La rubrique présente le décodeur bitmap, un composant de codec principal wic (Windows Imaging Component) utilisé pour décoder les fichiers image à partir d’un flux.
Cette rubrique contient les sections suivantes.
- Introduction
- Décodeurs bitmap natifs
- Création d’un décodeur bitmap
- Extensibilité du décodeur
- Rubriques connexes
Introduction
Les décodeurs bitmap peuvent être vus comme le conteneur externe d’une image numérique et permettent d’accéder aux propriétés globales et aux cadres d’image. Certains formats d’image prennent en charge les miniatures globales, les aperçus, les contextes de couleur ou les métadonnées, tandis que d’autres fournissent ces propriétés uniquement au niveau de l’image. Notez toutefois que la plupart des formats d’image standard ne prennent pas en charge ces propriétés globales. Par conséquent, la plupart des implémentations de codecs natifs fournies par WIC ne prennent pas en charge la majorité de ces propriétés globales. Consultez le tableau de la section Décodeurs bitmap natifs de cette rubrique pour plus d’informations sur la prise en charge globale des propriétés.
Dans WIC, les décodeurs bitmap sont représentés par l’interface IWICBitmapDecoder et permettent d’accéder à ces propriétés globales de la bitmap et, plus important encore, aux trames qu’elle contient. L’interface IWICBitmapFrameDecode représente un cadre bitmap individuel et est abordée en détail dans la vue d’ensemble des sources bitmap.
Décodeurs bitmap natifs
WIC fournit plusieurs implémentations natives de l’interface IWICBitmapDecoder pour les formats d’image web standard et le format photo HD à plage dynamique élevée. Le tableau suivant répertorie les décodeurs natifs, le nom de l’identificateur de classe et la prise en charge des propriétés globales disponibles. Bien qu’une fonctionnalité ne puisse pas prendre en charge une propriété telle que les miniatures au niveau global, le format d’image peut prendre en charge ces propriétés au niveau de l’image individuelle.
Format d'image | Nom DU CLSID | Miniatures | Previews | Contextes de couleurs | Métadonnées |
---|---|---|---|---|---|
BMP | CLSID_WICBmpDecoder | Non | Non | Non | Non |
GIF | CLSID_WICGifDecoder | Non | Non | Non | Oui |
ICO | CLSID_WICIcoDecoder | Non | Non | Non | Non |
JPEG | CLSID_WICJpegDecoder | Non | Non | Non | Non |
PNG | CLSID_WICPngDecoder | Non | Non | Non | Non |
TIFF | CLSID_WICTiffDecoder | Non | Non | Non | Non |
HD Photo | CLSID_WICWmpDecoder | Non | Oui | Non | Non |
Création d’un décodeur bitmap
Pour décoder une image à l’aide de WIC, vous devez d’abord créer un instance du IWICBitmapDecoder pour le format d’image ciblé. Le décodeur instance vous permet d’accéder aux propriétés globales et aux métadonnées, si elles sont prises en charge, ainsi qu’aux images. La fabrique d’images WIC, IWICImagingFactory, fournit plusieurs méthodes pour créer des décodeurs bitmap. Les méthodes de fabrique suivantes sont fournies pour créer des décodeurs bitmap.
Le code suivant montre comment créer un décodeur bitmap à l’aide d’un nom de fichier d’image et récupérer la première image de l’image.
// 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);
}
Extensibilité du décodeur
L’une des principales fonctionnalités de WIC est une infrastructure d’extensibilité qui permet aux développeurs de codecs de développer leurs propres codecs d’image et d’obtenir la même prise en charge de la plateforme que les implémentations natives des codecs d’image. Un ensemble unique et cohérent d’interfaces est utilisé pour tous les traitements d’images, quel que soit le format de l’image. Toute application utilisant WIC bénéficie d’une prise en charge automatique des nouveaux formats d’image dès que le codec est installé. Pour plus d’informations sur le développement de codecs, consultez les rubriques dans Développement de composants. Pour plus d’informations sur le développement du décodeur, consultez Implémentation d’un décodeur WIC-Enabled.
Rubriques connexes
-
Conceptuel