实现WIC-Enabled编码器

简介

(WIC) 编码器实现 Windows 映像组件需要编写两个类,实现 WIC 解码器也是如此。 这些类上的接口直接对应于 Windows 映像组件工作原理的 编码 部分中概述的编码器职责。

其中一个类提供容器级服务,并管理容器中各个映像帧的序列化。 此类实现 IWICBitmapEncoder 接口。 如果映像格式支持容器级元数据,则还必须在此类上实现 IWICMetadataBlockWriter 接口。

另一个类提供帧级服务,并为容器中的每个帧执行图像位的实际编码。 它还循环访问每个帧的元数据块,并请求相应的元数据编写器序列化块。 此类实现 IWICBitmapFrameEncode 接口和 IWICMetadataBlockWriter 接口。 此类应具有容器级类在实例化时初始化的 IStream 成员, Commit 方法将序列化帧数据。

在某些情况下(例如原始格式),编解码器作者可能不希望应用程序能够编码或重新编码为原始格式,因为原始文件的目的是完全包含来自相机的传感器数据。 如果编解码器作者不想启用编码,仍需要实现基本的编码器,只是为了启用添加元数据。 在这种情况下,编码器只需支持编写元数据所需的那些方法,并且可以从解码器中复制未动过的图像位。

参考

IWICBitmapEncoder

概念性

实现 IWICDevelopRaw

编码器接口

如何编写WIC-Enabled CODEC

Windows 映像组件概述