Udostępnij przez


Dekodowanie — omówienie

Temat wprowadza dekoder map bitowych, podstawowy składnik kodeka Windows Imaging Component (WIC) używanego do dekodowania plików obrazów ze strumienia.

Ten temat zawiera następujące sekcje.

Wprowadzenie

Dekodery bitmapy można postrzegać jako zewnętrzny kontener obrazu cyfrowego i zapewniają dostęp do globalnych właściwości oraz ramek obrazu. Niektóre formaty obrazów obsługują globalne miniatury, podglądy, konteksty kolorów lub metadane, a inne udostępniają te właściwości tylko na poziomie ramki. Należy jednak pamiętać, że wiele standardowych formatów obrazów nie obsługuje tych właściwości globalnych. W związku z tym wiele natywnych implementacji koderów udostępnianych przez WIC nie obsługuje większości tych globalnych właściwości. Aby uzyskać informacje na temat obsługi właściwości globalnych, zobacz tabelę w sekcji Dekodatory natywnej mapy bitowej w tym temacie.

W funkcji WIC dekodatory map bitowych są reprezentowane przez interfejs IWICBitmapDecoder i zapewnia dostęp do tych globalnych właściwości mapy bitowej i, co ważniejsze, ramek, które zawiera. Interfejs IWICBitmapFrameDecode reprezentuje pojedynczą ramkę mapy bitowej i jest szczegółowo omówiony w Omówienie źródeł map bitowych.

Natywne dekodatory map bitowych

WIC udostępnia kilka natywnych implementacji interfejsu IWICBitmapDecoder dla standardowych formatów obrazów internetowych i formatu HD Photo o wysokim zakresie dynamicznym. W poniższej tabeli wymieniono dostępne natywne dekodatory, nazwę identyfikatora klasy i obsługę właściwości globalnych. Chociaż funkcja może nie obsługiwać właściwości, takiej jak miniatury na poziomie globalnym, format obrazu może obsługiwać takie właściwości na poziomie pojedynczej ramki.

Format obrazu Nazwa CLSID Miniatury Podglądy Konteksty kolorów Metadane
BMP CLSID_WICBmpDecoder Nie Nie Nie Nie
GIF CLSID_WICGifDecoder Nie Nie Nie Tak
ICO CLSID_WICIcoDecoder Nie Nie Nie Nie
JPEG CLSID_WICJpegDecoder Nie Nie Nie Nie
PNG CLSID_WICPngDecoder Nie Nie Nie Nie
TIFF CLSID_WICTiffDecoder Nie Nie Nie Nie
Zdjęcie HD CLSID_WICWmpDecoder Nie Tak Nie Nie

 

Tworzenie dekodera mapy bitowej

Aby zdekodować obraz przy użyciu funkcji WIC, należy najpierw utworzyć wystąpienie IWICBitmapDecoder dla docelowego formatu obrazu. Wystąpienie dekodera umożliwia dostęp do globalnych właściwości i metadanych, jeśli są obsługiwane, a także klatek obrazów. Fabryka obrazów WIC, IWICImagingFactory, udostępnia kilka metod tworzenia dekodatorów map bitowych. Następujące metody fabryczne są udostępniane do tworzenia dekoderów map bitowych.

Poniższy kod przedstawia sposób tworzenia dekodera mapy bitowej przy użyciu nazwy pliku obrazu i pobierania pierwszej ramki obrazu.

   // 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);
   }

Rozszerzalność dekodera

Jedną z podstawowych funkcji WIC jest struktura rozszerzalności, która umożliwia deweloperom koderów kodujących tworzenie własnych koderów obrazów i uzyskiwanie tej samej obsługi platformy co natywne implementacje koderów obrazów. Pojedynczy spójny zestaw interfejsów jest używany do wszystkich przetwarzania obrazów, niezależnie od formatu obrazu. Każda aplikacja korzystająca z funkcji WIC uzyskuje automatyczną obsługę nowych formatów obrazów zaraz po zainstalowaniu kodera. Aby uzyskać więcej informacji na temat tworzenia kodeków, zobacz tematy w Component Development. Aby uzyskać więcej informacji na temat programowania dekodera, zobacz Implementowanie WIC-Enabled dekodera.

Koncepcyjny

Składnik programu Windows Imaging — omówienie

Omówienie kodowania

rozwój komponentów