JPEG Compressor/Decompressor 

These classes implement JPEG image compression and decompression. JPEG (pronounced "jay-peg") is a standardized compression method for full-color and gray-scale images. JPEG is designed to handle "real-world" scenes, for example, scanned photographs. Cartoons, line drawings, and other non-realistic images are not JPEG's strong point. With this sort of material you may get poor image quality and/or little compression.
JPEG is lossy, meaning that the output image will not necessarily be identical to the input image. Therefore, you should not use JPEG if you have to have identical output bits. However, with typical real-world images, very good compression levels can be obtained with no visible change and amazingly high compression is possible if you can tolerate a low-quality image. You can trade off image quality against file size by adjusting the compressor's "quality" setting.
These MFC Extension classes make use of the JPEG library of IJG, that is, the Independent JPEG Group's JPEG software. The version used here is the latest version, version 6.
The demonstration program is very straightforward. It shows the most important features. It features a compression panel on the left, and a decompression panel on the right.

The JPEG files are in the defacto standard JFIF file format. There are other, less widely used JPEG-based file formats, but the IJG library does not support them.
Features:
•	Full OO Architecture around a JPEG C-library. 
•	Use of virtual function mechanism to make these JPEG classes easily extendible. 
•	The standard error handling of the JPEG library has been replaced by an MFC error handling with own exceptions. 
•	Compression and decompression are separate classes to enable apps to do several tasks simultaneously without interfering.