Delen via


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.

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.

Conceptuele

Overzicht van Windows Imaging-onderdelen

Overzicht van codering

Componentontwikkeling