一、静态库生成 1.CxImage 7.02下载:点击下载2.解压到比如:E:\\cximage702_full\目录下3.解决方案的组织结构 直接打开CxImageFull_vc10.sln,打开后发现共有该解决方案下共有14个项目, a.cximage,jasper,jbig,jpeg,libdcr,libpsd,mng,png,tiff,zlib这10个项目是生成静态库文件的,对应的静态库文件分别是cximage.lib,jasper.lib,jbig.lib,jpeg.lib,libdcr.lib,libpsd.lib,mng.lib,png.lib,tiff.lib,zlib.lib; b.CxImageCrtDll和cximagemfcdll这两个项目是生成动态库的; c.另外有demo和demodll这两个项目是演示用的,生成demo.exe和demodll.exe两个应用程序(在E:\\cximage702_full\bin目录下),两者之间的差别可能是一个使用的是静态库(demo),一个使用的是动态库(demodll)4.整个解决方案项目之间的依赖关系是 • 10个静态库文件不依赖任何其他项目 • CxImageCrtDll和cximagemfcdll这两个项目依赖于除cximage外的其它静态库项目, • demo依赖于10个静态库项目 • demodll不依赖任何项目,但在链接器->输入->附加依赖项的时候发现,该项目依赖于10个静态库项目生成的对应lib文件,这些文件必须在此之前生成 5.库文件的生成 • 根据依赖关系,在CxImageCrtDll,cximagemfcdll,demo任意一个项目上上右键生成,都会在相应的E:\\cximage702_full\Debug目录或者E:\\cximage702_full\Release\目录下得到静态库文件 二、调用库前的准备工作 • 建立E:\\cximage文件夹(任意) o 组织结构如下 o E:\\cximage o |-----include o |-----lib o |--debug o |---release • 将E:\\cximage702_full\CxImage文件夹下的所有头文件和源文件拷贝到E://cximage/include文件夹下 • 静态库的准备 o 将debug模式下生成的静态库文件E:\\cximage702_full\CxImage\CxImageDLL\Debug拷贝到E:\\cximage\lib\debug目录下 o 将release模式下生成的静态库文件E:\\cximage702_full\CxImage\CxImageDLL\Release拷贝到E:\\cximage\lib\release目录下 三、调用库的具体操作 新建一个win32控制台项目,其配置如下: 项目配置(静态调用) 新建一个win32控制台项目,其配置如下: 项目配置(静态调用) a.项目-->属性-->配置属性-->常规里按如下配置 o选择“在共享DLL中使用MFC”, o使用“多字节字符集” o选择“在共享DLL中使用MFC”, o使用“多字节字符集” b.VC++目录 o包含目录设置: o包含目录设置:E:\\cximage\include\ o库目录设置: o库目录设置:E:\\cximage\lib\debug或者release(具体设置) c.链接器->输入->附加依赖项 o以分号或者回车为间隔,填入lib文件夹中的库文件,即生成的十个静态库文件 ocximage.lib,jasper.lib,jbig.lib,jpeg.lib,libdcr.lib,libpsd.lib,mng.lib,png.lib,tiff.lib,zlib.lib o以分号或者回车为间隔,填入lib文件夹中的库文件,即生成的十个静态库文件 ocximage.lib,jasper.lib,jbig.lib,jpeg.lib,libdcr.lib,libpsd.lib,mng.lib,png.lib,tiff.lib,zlib.lib d.C/C++代码生成 o结构成员对齐:16字节 o预编译头:不使用 o结构成员对齐:16字节 o预编译头:不使用 四、测试程序
#include <ximage.h>
void main()
{
CxImage image;
// bmp -> jpg
image.Load(_T("lena.bmp"), CXIMAGE_FORMAT_BMP);
if (image.IsValid())
{
if(!image.IsGrayScale())
image.IncreaseBpp(24);
image.SetJpegQuality(80);
image.Save(_T("lena.jpg"),CXIMAGE_FORMAT_JPG);
}
}