我正在使用VS2008,MFC和WIC开发一个图像查看器/编辑器,我希望在图像处理之后尽可能地将jpegs重新压缩(质量 - wize)到它们的原始 . 有谁知道如何提取亮度和色度表来设置
http://msdn.microsoft.com/en-us/library/gg430026%28v=vs.85%29.aspx WITHOUT 必须使用额外的大型库(如libjpeg)?
我正在使用VS2008,MFC和WIC开发一个图像查看器/编辑器,我希望在图像处理之后尽可能地将jpegs重新压缩(质量 - wize)到它们的原始 . 有谁知道如何提取亮度和色度表来设置
http://msdn.microsoft.com/en-us/library/gg430026%28v=vs.85%29.aspx WITHOUT 必须使用额外的大型库(如libjpeg)?
1 回答
JPEG standard specification涵盖了亮度和色度表的详细信息 .
在JPEG术语中,这些表都称为“量化表”(DQT) . 亮度量化表应用于“Y”信道,色度量化表应用于“Cb”和“Cr”信道 .
This website列出了大量相机制造商和JPEG创作软件的量化表 .
要使用与另一个现有图像相同的量化表重新压缩图像:
查询并枚举源图像中的所有IWICMetadataBlockReader对象(IWICBitmapFrameDecode) .
查找类型为GUID_MetadataFormatJpegChrominance and GUID_MetadataFormatJpegLuminance的元数据块
提取二进制数据,并在调用IWICBitmapFrameEncode :: Initialize时将这些数据放入IPropertyBag中,以初始化JPEG encoder options的Luminance和Chrominance属性 .