Overzicht van decoderen
In het onderwerp wordt de bitmapdecoder geïntroduceerd, een WIC-codeconderdeel (Core Windows Imaging Component) dat wordt gebruikt om afbeeldingsbestanden van een stream te decoderen.
Dit onderwerp bevat de volgende secties.
- Inleiding
- systeemeigen bitmap decoders
- Een bitmapdecoder maken
- Decoderaanpassingen
- Verwante onderwerpen
Introductie
Bitmap decoders kunnen worden weergegeven als de buitenste container van een digitale afbeelding en biedt toegang tot globale eigenschappen en afbeeldingsframes. Sommige afbeeldingsindelingen ondersteunen globale miniaturen, voorbeelden, kleurcontexten of metagegevens, terwijl andere deze eigenschappen alleen op frameniveau bieden. Veel van de standaardafbeeldingsindelingen bieden echter geen ondersteuning voor deze globale eigenschappen. Daarom bieden veel van de systeemeigen codec-implementaties van WIC geen ondersteuning voor het merendeel van deze globale eigenschappen. Zie de tabel in de sectie Native Bitmap Decoders van dit onderwerp voor informatie over de ondersteuning van globale eigenschappen.
In WIC worden bitmap decoders vertegenwoordigd door de IWICBitmapDecoder interface en biedt toegang tot deze globale eigenschappen van de bitmap en, belangrijker, de frames die het bevat. De IWICBitmapFrameDecode interface vertegenwoordigt een afzonderlijk bitmapframe en wordt uitgebreid besproken in de Overzicht van bitmapbronnen.
Systeemeigen bitmap decoders
WIC biedt verschillende systeemeigen implementaties van de IWICBitmapDecoder interface voor de standaard webafbeeldingsindelingen en de HD Photo-indeling met een hoog dynamisch bereik. De volgende tabel bevat de beschikbare systeemeigen decoders, de naam van de klasse-id en de ondersteuning voor globale eigenschappen. Hoewel een functie mogelijk geen ondersteuning biedt voor een eigenschap zoals miniaturen op globaal niveau, kan de afbeeldingsindeling dergelijke eigenschappen op het niveau van het afzonderlijke frame ondersteunen.
Afbeeldingsopmaak | CLSID-naam | Miniaturen | Voorbeschouwingen | Kleurcontexten | Metagegevens |
---|---|---|---|---|---|
BMP | CLSID_WICBmpDecoder | Nee | Nee | Nee | Nee |
GIF | CLSID_WICGifDecoder | Nee | Nee | Nee | Ja |
ICO | CLSID_WICIcoDecoder | Nee | Nee | Nee | Nee |
JPEG | CLSID_WICJpegDecoder | Nee | Nee | Nee | Nee |
PNG | CLSID_WICPngDecoder | Nee | Nee | Nee | Nee |
TIFF | CLSID_WICTiffDecoder | Nee | Nee | Nee | Nee |
HD-foto | CLSID_WICWmpDecoder | Nee | Ja | Nee | Nee |
Een bitmapdecoder maken
Als u een afbeelding wilt decoderen met behulp van WIC, moet u eerst een voorbeeld van de IWICBitmapDecoder- maken voor het gewenste afbeeldingsformaat. Met het decoderexemplaar hebt u toegang tot de algemene eigenschappen en metagegevens, evenals de afbeeldingsframes, indien ondersteund. De WIC Imaging Factory, IWICImagingFactory, biedt verschillende methoden voor het maken van bitmap decoders. De volgende fabrieksmethoden zijn beschikbaar voor het maken van bitmap decoders.
De volgende code laat zien hoe u een bitmapdecoder maakt met behulp van een bestandsnaam van een afbeelding en het eerste frame van de afbeelding ophaalt.
// 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);
}
Decoder-uitbreidbaarheid
Een van de belangrijkste functies van WIC is een uitbreidbaar framework waarmee codecontwikkelaars hun eigen installatiekopiecodecs kunnen ontwikkelen en dezelfde platformondersteuning kunnen krijgen als de systeemeigen implementaties van installatiekopiecodecs. Er wordt één consistente set interfaces gebruikt voor alle afbeeldingsverwerking, ongeacht de afbeeldingsindeling. Elke toepassing die GEBRUIKMAAKT van WIC krijgt automatische ondersteuning voor nieuwe afbeeldingsindelingen zodra de codec is geïnstalleerd. Zie de onderwerpen in Component Developmentvoor meer informatie over codecontwikkeling. Zie Een WIC-Enabled Decoder implementerenvoor meer informatie over decoderontwikkeling.
Verwante onderwerpen
-
Conceptuele
-
Overzicht van Windows Imaging-onderdelen