CxImage 在VC2005中配置以及使用

我试验成功的方法:

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);

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值