简单介绍下CxImage类的简单用法,希望给刚接触CxImage的朋友带来一些帮助,我使用的工具为vs2005
打开CxImage工程后可以看到下例这些工程:
- CxImage
- CxImageCrtDll
- CxImageMfcDll
- dome
- domeDll
- jasper
- jbig
- jpeg
- libdcr
- mng
- png
- tiff
- zlib
编译后生成一系列的lib、dll文件,这些文件就是我们所需要的。怎么用,我后面会进行介绍。
1首先我们要确定在程序中是希望静态链接还是动态链接,在这里我建议大家使用动态链接,因为这个库有点大,如果使用静态链接的话你的应用程序体积会额外增加1MB多。
2。然后确定在MFC中使用还是在CRT环境中使用,这个库专门为你建了这两个工程来创建不同环境中使用的运行时库,跟据你的需求来选择编译CxImageCrtDll还是CxImageMfcDll工程,如果你希望使用静态库链接的话除了这两个工程不需要编译其它的工程都需要编译。并且在引用这个静态库的时候要把这些所有编译过的工程里的*.lib全部拷到你的程里去。
以静态链接为例:
1、编译完工程后,将以下文件拷到你建立的工程里去
先将头文件拷到你的工程里新建文件夹的include去:
xfile.h、ximacfg.h、ximadef.h、ximage.h、xiofile.h、xmemfile.h,
使用静态链接需要拷以下文件到新建的文件夹lib中去:
cximage.lib、png.lib、Jpeg.lib、jbig.lib、Tiff.lib、libdcr.lib、jasper.lib、zlib.lib、mng.lib
2、在你的工程里引用这个库,添加头文件和库文件
#include "../include/ximage.h"
#pragma comment(lib, "../lib/cximage.lib")
#pragma comment(lib, "../lib/png.lib")
#pragma comment(lib, "../lib/cximagecrt.lib")
#pragma comment(lib, "../lib/libdcr.lib")
#pragma comment(lib, "../lib/jasper.lib")
#pragma comment(lib, "../lib/jbig.lib")
#pragma comment(lib, "../lib/Jpeg.lib")
#pragma comment(lib, "../lib/mng.lib")
#pragma comment(lib, "../lib/libdcr.lib")
#pragma comment(lib, "../lib/Tiff.lib")
#pragma comment(lib, "../lib/zlib.lib")
如果是静态链接拷过来的那些*.lib文件全部要引用进去否则无法链接,
在这里有人可能会问既然只包含了"ximage.h"这一个头文件为什么要拷那么多头文件过来呢?
这是因为"ximage.h"这个头文件依赖那几个头文件所以必须拷过来。
3配置vs2005
在 项目->属性->配置属性->常规
MFC使用: 在共享DLL中使用MFC
字符集: 使用多字节字符集
在项目->属性->配置属性->C/C++->代码生成
运行时库 : /MD
预编译头:不使用预编译头
4使用过程
以显示一张PNG图像为例
新建一个mfc工程CxImageDemo,然后再CxImageDemoView.cpp中的OnDraw(CDC *pDC)函数中添加:
CxImage image; // 定义一个CxImage对象
image.Load(_T("../data/demo.png"), CXIMAGE_FORMAT_PNG); // 加载一幅png图片,图片路径自己更改
image.Draw(pDC->GetSafeHdc(), 0, 0);
即可