Gambaran Umum Pendekodean

Topik ini memperkenalkan dekoder bitmap, komponen codec Komponen Pencitraan Windows inti (WIC) yang digunakan untuk mendekode file gambar dari aliran.

Topik ini berisi bagian berikut.

Pengantar

Dekode bitmap dapat dilihat sebagai kontainer luar gambar digital dan menyediakan akses ke properti global dan bingkai gambar. Beberapa format gambar mendukung gambar mini global, pratinjau, konteks warna, atau metadata, sementara yang lain menyediakan properti ini hanya pada tingkat bingkai. Namun, perhatikan, banyak format gambar standar tidak mendukung properti global ini. Dengan demikian, banyak implementasi codec asli yang disediakan oleh WIC tidak mendukung sebagian besar properti global ini. Lihat tabel di bagian Dekode Bitmap Asli dari topik ini untuk informasi tentang dukungan properti global.

Di WIC, dekoder bitmap diwakili oleh antarmuka IWICBitmapDecoder dan menyediakan akses ke properti global bitmap ini dan, yang lebih penting, bingkai yang dikandungnya. Antarmuka IWICBitmapFrameDecode mewakili bingkai bitmap individual dan dibahas secara rinci dalam Gambaran Umum Sumber Bitmap.

Dekode Bitmap Asli

WIC menyediakan beberapa implementasi asli antarmuka IWICBitmapDecoder untuk format gambar web standar dan format Hd Photo rentang dinamis tinggi. Tabel berikut mencantumkan dekode asli yang tersedia, nama pengidentifikasi kelas, dan dukungan untuk properti global. Meskipun fitur mungkin tidak mendukung properti seperti gambar mini di tingkat global, format gambar dapat mendukung properti tersebut di tingkat bingkai individual.

Format Gambar Nama CLSID Thumbnail Pratinjau Konteks Warna Metadata
BMP CLSID_WICBmpDecoder Tidak Tidak Tidak Tidak
GIF CLSID_WICGifDecoder Tidak Tidak Tidak Ya
ICO CLSID_WICIcoDecoder Tidak Tidak Tidak Tidak
JPEG CLSID_WICJpegDecoder Tidak Tidak Tidak Tidak
PNG CLSID_WICPngDecoder Tidak Tidak Tidak Tidak
TIFF CLSID_WICTiffDecoder Tidak Tidak Tidak Tidak
Foto HD CLSID_WICWmpDecoder Tidak Ya Tidak Tidak

 

Membuat Dekoder Bitmap

Untuk mendekode gambar menggunakan WIC, Anda harus terlebih dahulu membuat instans IWICBitmapDecoder untuk format gambar yang ditargetkan. Instans decoder memungkinkan Anda mengakses properti dan metadata global, jika didukung, serta bingkai gambar. Pabrik pencitraan WIC, IWICImagingFactory, menyediakan beberapa metode untuk membuat dekode bitmap. Metode pabrik berikut disediakan untuk membuat dekode bitmap.

Kode berikut menunjukkan cara membuat dekoder bitmap menggunakan nama file gambar dan mengambil bingkai pertama gambar.

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

Ekstensibilitas Decoder

Salah satu fitur inti WIC adalah kerangka kerja ekstensibilitas yang memungkinkan pengembang codec mengembangkan codec gambar mereka sendiri dan mendapatkan dukungan platform yang sama dengan implementasi native codec gambar. Satu set antarmuka yang konsisten digunakan untuk semua pemrosesan gambar, terlepas dari format gambar. Aplikasi apa pun yang menggunakan WIC mendapatkan dukungan otomatis untuk format gambar baru segera setelah codec diinstal. Untuk informasi selengkapnya tentang pengembangan codec, lihat topik dalam Pengembangan Komponen. Untuk informasi selengkapnya tentang pengembangan dekoder, lihat Menerapkan WIC-Enabled Decoder.

Konseptual

Gambaran Umum Komponen Pencitraan Windows

Gambaran Umum Pengodean

Pengembangan Komponen