Menerapkan WIC-Enabled Decoder
Menerapkan dekoder Windows Imaging Component (WIC) memerlukan penulisan dua kelas. Antarmuka pada kelas-kelas ini sesuai langsung dengan tanggung jawab dekoder yang diuraikan di bagian Pendekodean dari Cara Kerja Komponen Pencitraan Windows.
Salah satu kelas menyediakan layanan tingkat kontainer dan mengimplementasikan antarmuka IWICBitmapDecoder . Jika format gambar Anda mendukung metadata tingkat kontainer, Anda juga harus mengimplementasikan antarmuka IWICMetadataBlockReader pada kelas ini. Disarankan agar Anda mendukung antarmuka IWICBitmapCodecProgressNotification pada decoder dan encoder untuk mendukung pengalaman pengguna yang lebih baik.
Kelas lain yang akan Anda terapkan menyediakan layanan tingkat bingkai dan melakukan decoding aktual bit gambar untuk setiap bingkai dalam kontainer. Kelas ini mengimplementasikan antarmuka IWICBitmapFrameDecode dan antarmuka IWICMetadataBlockReader . Jika Anda menulis dekoder untuk format mentah, Anda juga mengimplementasikan antarmuka IWICDevelopRaw pada kelas ini. Selain antarmuka yang diperlukan, sangat disarankan agar Anda mengimplementasikan antarmuka IWICBitmapSourceTransform pada kelas ini untuk memungkinkan performa terbaik untuk format gambar Anda.
Salah satu objek yang disediakan oleh WIC adalah ImagingFactory. Anda sering menggunakan antarmuka IWICComponentFactory pada objek ini untuk membuat berbagai komponen. Karena sering digunakan, Anda harus menyimpan referensi ke dalamnya sebagai properti anggota pada kelas decoder dan encoder Anda.
IWICImagingFactory* m_pImagingFactory = NULL;
IWICComponentFactory* m_pComponentFactory = NULL;
HRESULT hr;
hr = CoCreateInstance(CLSID_WICImagingFactory, NULL,
CLSCTX_INPROC_SERVER, IID_IWICImagingFactory,
(LPVOID*) m_pImagingFactory);
hr = m_pImagingFactory->QueryInterface(
IID_IWICComponentFactory, (void**)&m_pComponentFactory);
Topik terkait
-
Konseptual