以前搞图片在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下面的一行换为
1 | !include <C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\Win32.Mak> |
5、
在all:libjpeg.lib 中添加dll的编译
1 | libjpeg.dll: $(LIBOBJECTS) |
6、
在dos下进入源代码目录,输入
1 | vcvars32 |
编译
1 | nmake /f makefile.vc nodebug=1 |
7、
在当前目录生成libjpeg.dll和libjpeg.lib 头文件:jconfig.h、jerror.h jmorecfg.h jpeglib.h
PS:
1、VS使用时需要内存对齐问题,如果需要更改,在更改后就改回原来默认的8字节,否则,libjpeg库中的结构体大小会不对应,运行时会提示错误信息。可以利用#pragma pack(push) #pragma pack(n) #pragma pack(pop)来解决此问题。
2、接下面将写两个例子:利用libjpeg解压jpg图片,并保存为BMP。读取BMP图片,利用libjpeg压缩为jpg图片。