1. 实验目的
(1)编译JPEG-8C参考软件。
(2)学会使用JPEG-8C提供的可执行文件进行简单的JPEG解压缩。
(3)在Microsoft Visual C++ 6.0环境下进行读写JPEG格式文件实验,了解并熟悉基本的JPEG文件解压缩和压缩处理方式。
2. 实验环境
(1)Windows XP OS
(2)IJG参考软件JPEG-8C
(3)Microsoft Visual C++ 6.0
3. 实验步骤
Ⅰ 下载及编译JPEG-8C参考软件
(1)下载JPEG-8C
登录IJG官方网站http://www.ijg.org/,根据网站提示下载Windows压缩格式的源代码包jpegsr8c.zip,这个版本是目前的最新版本。下载到硬盘上解压,将会在安装目录下出现文件夹jpeg-8c,里面包含了jpeg的源代码、说明使用文档以及一些测试图片。
(2)编译JPEG-8C参考软件
IJG支持多平台下的应用,不同平台下的编译安装细节都可以在install.txt中找到。在此,我以Microsoft Visual C++ 6.0作为平台进行编译。
① 开始编译前首先需要将jconfig.vc更名为jconfig.h 。
② 开始—运行—键入cmd,进入命令行模式。在命令行下进入到Microsoft Visual C++ 6.0的安装目录下的bin文件夹,在其目录下有一个名为vcvars32.bat的批处理文件,在命令行下运行这个批处理(键入vcvars32.bat,回车),这个批处理的作用是注册VC6.0相关的一些环境变量,这样在任何系统目录下都可以使用VC6.0提供的工具。然后不要关闭当前命令窗口,进入到IJG的安装目录./jpeg-8c下,执行命令NMAKE /f makefile.vc。也就是开始编译IJG库,在屏幕迅速闪过一些编译信息后,如果没有错误出现,IJG也就编译完成。编译完成后,IJG的安装目录下会出现若干文件,我们所需要的是一个叫做libjpeg.lib的静态库文件,在编译我们程序的时候链接使用。除此一般还要用到4个头文件,jconfig.h、jerror.h、jmorecfg.h、jpeglib.h。当然,目录下还会有一些可执行文件,是IJG提供的工具程序,稍后进行介绍。
(3)开发环境配置
在VC6.0下使用IJG之前首先要让VC能够找到那四个头文件并链接到libjpeg.lib的静态库文件,我们对开发环境做一下配置,如下:
① 进入VC6.0 — 工具 — 选项 — 目录 — include files下添加jpeg-8c的路径 — Library files下添加 jpeg-8c的路径
② Project — Add to Project — Files,添加libjpeg.lib到工程中去。
至此,配置步骤完成,于是就可以开始用IJG写程序了。
Ⅱ 使用参考软件提供的可执行文件进行JPEG解压缩
在jpeg-8c编译成功后,会生成5个可执行文件:cjpeg.exe、djpeg.exe、jpegtran.exe、 rdjpgcom.exe、wrjpgcom.exe。其中我们可以使用cjpeg.exe和djpeg.exe进行比较简单的JPEG解压缩操作。
① cjpeg.exe的简单使用
cjpeg [选项] 图像文件 jpg图像文件
通过该命令可以将图像文件压缩为jpg格式的图像,目前支持的图像文件格式有:PPM (PBMPLUS color format),PGM (PBMPLUS gray-scale format),BMP,GIF,and RLE (Utah Raster Toolkit format)。
我们可以通过选项-quality N(0~100)来设置压缩比率,如:cjpeg –quality 50 testimg.bmp testimg.jpg ,即以压缩率50%将testimg.bmp压缩为testimg.jpg 。
该命令的使用仍是在命令行模式下进入jpeg-8c目录下,键入命令实现。
② djpeg.exe的简单使用
djpeg [选项] jpg图像文件 jpg图像文件
通过该命令可以将jpg图像文件解压为所支持的图像格式。我们要通过选项来设定解压的格式,也可以使用-colors N(8以上)设定使用色彩的个数。
如:djpeg –bmp –colors 256 tes