我正在使用 VS2008、MFC 和 WIC 开发图像查看器/编辑器,我想在图像处理后尽可能地将 jpeg 重新压缩(质量压缩)到其原始图像。有谁知道如何提取亮度和色度表以在
http://msdn.microsoft.com/en-us/library/gg430026%28v=vs.85%29.aspx中设置而
无需使用额外的大型库(如libjpeg)?
问问题
1778 次
1 回答
3
JPEG 标准规范涵盖了亮度和色度表的详细信息。
在 JPEG 术语中,这些表都称为“量化表”(DQT)。亮度量化表应用于“Y”通道,色度量化表应用于“Cb”和“Cr”通道。
该网站列出了大量相机制造商和 JPEG 创作软件的量化表。
要使用与另一个现有图像相同的量化表重新压缩图像:
- 从源图像 (IWICBitmapFrameDecode)查询并枚举所有IWICMetadataBlockReader对象。
- 查找类型为 GUID_MetadataFormatJpegChrominance 和 GUID_MetadataFormatJpegLuminance的元数据块
- 提取它们的二进制数据,并在调用 IWICBitmapFrameEncode::Initialize 时,通过将它们放入 IPropertyBag中,使用这些数据来初始化JPEG 编码器选项的Luminance和Chrominance属性。
于 2011-07-01T07:14:08.860 回答