Share via


實作WIC-Enabled解碼器

實作 Windows 映像處理元件 (WIC) 解碼器需要撰寫兩個類別。 這些類別上的介面會直接對應至Windows 影像處理元件運作方式碼器責任一節中所述。

其中一個類別提供容器層級服務,並實作 IWICBitmapDecoder 介面。 如果您的映射格式支援容器層級中繼資料,您也必須在此類別上實作 IWICMetadataBlockReader 介面。 建議您支援解碼器和編碼器上的 IWICBitmapCodecProgressNotification 介面,以支援更好的使用者體驗。

您將實作的另一個類別提供框架層級服務,並針對容器中的每個畫面執行影像位的實際解碼。 這個類別會實作 IWICBitmapFrameDecode 介面和 IWICMetadataBlockReader 介面。 如果您要撰寫原始格式的解碼器,您也會在此類別上實作 IWICDevelopRaw 介面。 除了必要的介面之外,強烈建議您在此類別上實作 IWICBitmapSourceTransform 介面,以啟用影像格式的最佳效能。

WIC 提供的其中一個物件是 ImagingFactory。 您經常在此物件上使用 IWICComponentFactory 介面來建立各種元件。 因為經常使用,所以您應該在解碼器和編碼器類別上保留其成員屬性的參考。

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

概念

Windows 映像處理元件的運作方式

解碼器介面

如何撰寫WIC-Enabled CODEC

Windows 映像元件概觀

WIC 中繼資料概觀

編碼概觀