JPEG 格式概述
本主题提供有关通过 Windows 映像组件 (WIC) 提供的本机 JPEG 编解码器的信息。
编解码器标识
下表提供了编解码器标识信息。
组件 | 说明 |
---|---|
正式名称 () | 联合图像专家组 (JPEG) |
文件扩展名 () | jpe、jpeg、jpg |
MIME 类型 (MIME type) | image/jpeg,image/jpe,image/jpg |
规范支持 | JFIF 规范 1.02 |
下表列出了用于标识本机 JPEG 编解码器组件的 GUID。
组件 | 友好名称 | GUID |
---|---|---|
容器格式 | GUID_ContainerFormatJpeg | 19e4a5aa-5662-4fc5-a0c01758028e1057 |
解码器 | CLSID_WICJpegDecoder | 9456a480-e88b-43ea-9e730b2d9b71b1ca |
编码器 | CLSID_WICJpegEncoder | 1a34f5c1-4a5a-46dc-b6441f4567e7a676 |
编码
WIC 编码 API 设计为与编解码器无关,已启用 WIC 的编解码器的图像编码本质上是相同的。 有关使用 WIC API 进行图像编码的详细信息,请参阅 编码概述。
编码器选项
启用 WIC 的编解码器在编码选项级别上有所不同。 编码器选项反映图像编码器的功能,每个本机编解码器都支持一组这些编码器选项。 编码器选项可以是所有启用 WIC 的代码的基本 WIC 支持选项, (但不一定受图像格式编解码器设计的) 或编解码器特定选项的支持。 为了在编码过程中管理这些编码选项,WIC 使用 IPropertyBag2 接口 。 有关使用 IPropertyBag2 接口进行 WIC 编码 的详细信息,请参阅 编码概述。
JPEG 编解码器使用基本 WIC 选项。 下表列出了本机 JPEG 编解码器支持的 WIC 编码器选项。
属性名称 | VARTYPE | 值范围 | 默认值 |
---|---|---|---|
ImageQuality | VT_R4 | 0 - 1.0 | 0.9 |
BitmapTransform | VT_UI1 | WICBitmapTransformOptions | WICBitmapTransformRotate0 |
亮度 | VT_UI4/VT_ARRAY | 64 个条目 (DCT) | 默认亮度表。 |
色度 | VT_UI4/VT_ARRAY | 64 个条目 (DCT) | 默认色度表。 |
JpegYCrCbSubsampling | VT_UI1 | WICJpegYCrCbSubsamplingOption | WICJpegYCrCbSubsampling420 |
SuppressApp0 | VT_BOOL | 真/假 | FALSE |
如果编解码器不支持的 IPropertyBag2 选项列表中存在编码器选项,则会忽略该选项。
ImageQuality 选项
指定所需的图像保真度。 0.0 表示尽可能低的保真度,1.0 表示最高保真度。
默认值为 0.9。
BitmapTransform 选项
指定在图像解码期间如何转换图像。 此选项必须设置为 WICBitmapTransformOptions 枚举值之一。
默认值为 WICBitmapTransformRotate0。
亮度选项
指定用于编码的灰度亮度级别表。
Chrominance 选项
指定要用于编码的色度表。
JpegYCrCbSubsampling 选项
指定要用于 YCrCb 编码的子采样比率。
默认值为 WICJpegYCrCbSubsampling420。
SuppressApp0 选项
指定在对图像数据进行编码时是否禁止写入 App0 元数据。
默认值为 FALSE。
解码
WIC 解码 API 设计为与编解码器无关,而启用 WIC 的编解码器的图像解码本质上是相同的。 有关图像解码的详细信息,请参阅 解码概述。 有关使用解码的图像数据的详细信息,请参阅 位图源概述。
本机 JPEG 编解码器还支持帧解码上的 IWICBitmapSourceTransform ,添加用于解码图像流的 advaced 选项。 有关这些高级选项的详细信息,请参阅 位图源概述。