在Unix或Linux系统上的编译情况如下:
1. tar xzvf jpegsrcv6b.tar.gz(在我的资源中心可以下载)
2. cd jpeg-6b
3. ./configure
4. make
5. make test(编译测试程序,看看能否在系统上正确运行)
6. make install
在windows上,用VisualStadio2008编译的方法如下:
1)
1. 解开原始的zip文件
2. 打开VS2008,新建Project,在弹出的Windows中,选择Win32 Project,路径选C:,Name输入jpeg-6b,不选create directory for silution.点击Next
3. 在接下去窗口选择DLL,Empty Project。然后点击Finish即可。
4. 打开jpeg-6b solution添加文件。在source file中添加.c文件,因为我们要生成dll,所以参见makelib.ds文件中生成lib所需的.c,不用将所有.c加入
5. 将jconfig.vc改为jconfig.h.
6. 将jpeg-6b目录下的.h加入到solution的header files
7. 保存solution后,按F7即可生成dll
8. 加入example.c,将此.c文件中的read_JPG_File作为dll调用的入口程序
在windows上,用VisualStadio编译的方法如下:
用一个库的Makefile,可以把libjpeg生成一个静态的Win32库,应用程序的Makefile可以生成示例程序(win32命令行应用程序)。
1. 将jconfig.vc复制并改名为jconfig.h,复制makelib.ds并改名为jpeg.mk,复制makeapps.ds改名为apps.mak
2. 点击.mak文件构造project workspace
3. 先编译库项目,再编译应用程序项目
4. 应用程序在app\Release下
5. 可以执行自检,NMAKE /f makefile.vc test
2)
在windows上,用命令行直接编译libjpeg.(事先运行vsvars32.bat设置环境变量)
在libjpeg源代码中有一个Makefile.vc的文件,可以通过nmake /f makefile.vc [nodebug=1]来编译libjpeg,但是只能编译静态库。需要修改makefile.vc和jconfig.h才能编译成dll,可供其它应用程序调用。另外jconfig.vc改为jconfig.h
在Makefile.vc文件中添加编译dll规则:
Libjpeg.lib:$(LIBOBJECTS)
$(RM) libjpeg.lib
Lib –out:libjpeg.lib $(LIBOBJECTS)
#添加以下几行
Libjpeg.dll:$(LIBOBJECTS)
Link –dll –out:libjpeg.dll $(LIBOBJECTS)
在jmorecfg.h中添加
#define _WIN32_
#define JPEG_DLL
然后nmake /f makefile.vc nodebug=1就可以了(在TOOLS\VisualStadio2008 Command Prompt下)
优化
Libjpeg允许用户做一些与机器系统有关的优化。在做优化前,先通过基本的编译和自检。在优化之后,重新编译,运行自检,以确认你有没有改错。详见其readme.
Libjpeg的内存使用
Jmemnobs.c不使用任何存储备份文件,所用到的空间都有malloc分配,要求系统有足够的内存或虚拟内存。
Jmemname.c会创建一些临时文件,用于jpeg解压。
以前搞图片在LCD屏上显示的时候,曾经在Linux下编译过libjpeg,现在再次编译,不过换了平台而已。本文使用的编译器为VS2003,编译的libjpeg为最新版本,即jpeg-8c。
编译步骤:
1、添加环境变量PATH:C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin
2、解压jpegsrc.v8c.tar.gz,得到jpeg-8c
3、修改源代码中jconfig.vc为jconfig.h
4、修改makefile.vc,将Pull in standard variable definitions下面的一行换为
5、在all:libjpeg.lib 中添加dll的编译
6、在dos下进入源代码目录,输入
编译
7、在当前目录生成libjpeg.dll和libjpeg.lib
头文件:jconfig.h、jerror.h jmorecfg.h jpeglib.h
最后生产几个可执行文件:cjpeg,djpeg,jpegtran,rdjpgcom,wrjpgcom
其中cjpeg可以压缩其他图片格式文件成jpg格式,djpeg可以将jpg格式图片文件解压缩成其他格式,
举例:
djpeg -os2 x.jpg > x.bmp
djpeg -pnm x.jpg > x.ppm
windows下生成静态库
1,下载libjpeg。http://www.ijg.org,选windows format