介紹
實作 Windows 映射元件 (WIC) 編碼器需要撰寫兩個類別,因為實作 WIC 譯碼器也是如此。 這些類別的介面直接對應於《Windows 映像元件運作方式》文件中「編碼」一節所述的編碼器的責任。
其中一個類別提供容器層級服務,並管理容器內個別映像框架的串行化。 這個類別會實作 IWICBitmapEncoder 介面。 如果您的映像格式支援容器層級元數據,您也必須在此類別上實作 IWICMetadataBlockWriter 介面。
另一個類別提供逐幀層級服務,並針對容器中的每個幀進行影像位元的實際編碼。 它也會逐一查看每個畫面的元數據區塊,並要求適當的元數據寫入器串行化區塊。 這個類別會實作 IWICBitmapFrameEncode 介面和 IWICMetadataBlockWriter 介面。 這個類別應該有一個 IStream 成員,這是在容器層級類別具現化時初始化的,Commit 方法會將框架數據序列化到其中。
在某些情況下,例如原始格式,編解碼器的開發者可能不希望應用程式能夠編碼或重新編碼為原始格式,因為原始檔案的目的是完整保留從相機傳來的感測器數據。 在編解碼器作者不想啟用編碼的情況下,仍然需要實作基本的編碼器來啟用新增元數據。 在此情況下,編碼器只需要支援寫入元數據所需的方法,而且可以從譯碼器複製未觸控的影像位。
相關主題