我试验成功的方法:
cximage图像库在vs 2005中的配置
首先,对下载到得源代码设置cximage的编译方式,有4种选项:debug,release, unicode-debug,unicode-release,在批组建(batch build)中选择自己所需要的编译结果,得到对应的lib文件。(vs2005下Release模式下的静态库必须用vs2005编译,不然会出错,vs2005debug模式可以用vc6.0编译的静态库,但是有警告,不影响程序的运行)第二步,将cximage中的所有lib文件归类放置,即将编译后出现的DEBUG,Release,unicode-debug,unicode-release中的文件夹内的lib文件分别放置在自己定义的4个对应的lib文件夹中,不能混淆。如:D:/mycximage/lib/debug,D:/mycximage/lib/release。
第三步,将解压缩后的CxImage文件夹中所有.h文件放置在D:/mycximage/header文件夹中,其中D:/mycximage/header是自己创建的。到目前为止,D:/mycximage包含了CxImage中的头文件和cximage所有的lib文件,我们就建立了自己的cximage库了。
第四步,建立自己的工程,将D:/mycximage放入自己的工程目录下,并将所有的.h和lib文件加入工程。在要调用这些库的工程文件前(如xxxxdoc.cpp)加上以下内容(自己根据需要选择),
#include "mycximage/header/ximage.h"
#pragma comment(lib, "mycximage/lib/debug/png.lib" )
#pragma comment(lib, "mycximage/lib/debug/libdcr.lib")
#pragma comment(lib, "mycximage/lib/debug/Jpeg.lib")
#pragma comment(lib, "mycximage/lib/debug/zlib.lib")
#pragma comment(lib, "mycximage/lib/debug/Tiff.lib")
#pragma comment(lib, "mycximage/lib/debug/jasper.lib")
#pragma comment(lib, "mycximage/lib/debug/cximage.lib")
#pragma comment(lib, "mycximage/lib/debug/mng.lib")
第五步,在 项目->属性->配置属性->常规MFC使用: 在共享DLL中使用MFC
字符集: 使用多字节字符集 //debug模式中不受影响,在Release模式下必须这样设置
在项目->属性->配置属性->C/C++->代码生成
运行时库 : /MD
预编译头:不使用预编译头
OK,这样子,就可以开始使用CxImage啦,不过可能会出现warning LNK4099: PDB 'vc60.pdb'的警报。
CxImage 是一个十分强大的图形库,我们在PC端上开发GUI程序时,时常会用到位图之外的各种格式的图片,然而令我们郁闷的是在Windows平台上的GDI对一 些图片格式支持的很差,比如png格式!尽管mfc上有一个CImage类来解决这个问题,但是,CImage对png图片的支持其实也不怎么样,尤其是 图片带半透明效果时,CImage基本上就没法处理或处理的很差。
当然,我们也不是没有解决的方法,一种是我们自己解析png协议,然后将png图片转成1张或2张位图,这种方法一劳永逸,但是也太劳了…. >_<
另一种是使用GDIPLUS(也就是GDI+),它可以解决PNG的问题,但似乎渲染效率不是很高,而且,貌似CPU占用也稍微高了一点(当然,我觉得也有可能是我使用的时候在某些方面用得不好,尽管双缓冲什么的都用了,但是赶紧CPU的占用还是高了点)。
还有一种就是是使用CxImage,我们下面就简单的介绍一下如何使用CxImage(之所以简单是因为我也是刚刚能画出png图片,还算不上会用,哈哈 ^0^)
1,下载CxImage,可以从http://www.xdp.it/cximage/600/cximage600_full.7z上下载,这个是最新的6.00版本。
2, 解压压缩包,然后用开发工具打开(我用的是VS2005,你用VC6也一样能打开),随后编译项目记住要把CxImage以及那些代表图片格式的项目都编 译一遍,这样在它们相应目录下的Debug下就会生成相应的lib,如果你想看看demo的效果,那你必须先编译之前说的那些项目,否则demo会找不到 相应的lib而无法执行。
3,将所有的lib放在某个文件夹下,比如 E:/libs/png.lib jpeg.lib zlib.lib tiff.lib jbig.lib jasper.lib mng.lib cximage.lib,这里要说明的是由于cximage比较大,如果你只是希望支持众多格式中的几种,请在编译CxImage项目时,在 ximacfg.h中更改所要支持的格式标记,1为支持,0为不支持。我把除了PNG以外的格式都标记为不支持了,这样cximage.lib的大小约为 1.57M,如果全支持,好像是2M多。另外说一下,如果只是为了支持png图片,那么依赖的包也只有zlib.lib和png.lib。
4,在项目中加载这些lib,具体步骤如下
选项->工具->项目和解决方案->VC++目录
库文件: 增加 : E:/lib/ E:/lib/
包含文件: 增加: (your CxImage dir)/CxImage
然后在你的工程中:
项目->属性->配置属性->链接器->输入->附加依赖项 : 增加:
cximage.lib jpeg.lib png.lib tiff.lib j2k.lib jasper.lib jbig.lib zlib.lib
在 项目->属性->配置属性->常规
MFC使用: 在共享DLL中使用MFC
字符集: 使用多字节字符集
在项目->属性->配置属性->C/C++->代码生成
运行时库 : /MD
结构成员对齐: 16字节预编译头:不使用预编译头
这些都弄完之后,你应该就可以使用CxImage了,简单是例子如下:
#include “ximage.h”
CxImage xImage;
CString filename("c://1.png");
image.Load(filename,CXIMAGE_FORMAT_PNG);image.Draw(hdc,0,0);
CxImage 在VC2005中配置以及使用
最新推荐文章于 2024-11-01 16:34:38 发布