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」チャネルに適用されます。
この Web サイトには、多数のカメラ メーカーおよび JPEG オーサリング ソフトウェアの量子化テーブルがリストされています。
別の既存の画像と同じ量子化テーブルを使用して画像を再圧縮するには:
- ソース イメージ (IWICBitmapFrameDecode) からすべてのIWICMetadataBlockReaderオブジェクトを照会して列挙します。
- タイプGUID_MetadataFormatJpegChrominance および GUID_MetadataFormatJpegLuminanceを持つメタデータ ブロックを見つけます。
- それらのバイナリ データを抽出し、それらのデータを使用して、IWICBitmapFrameEncode::Initialize を呼び出すときに IPropertyBag に配置することで、 JPEG エンコーダ オプションのLuminanceプロパティとChrominanceプロパティを初期化します。
于 2011-07-01T07:14:08.860 に答える