CxImage类库是一个优秀的图像操作类库。它可以快捷地存取、显示、转换各种图像。用这些类库,你要被这样那样的许可协议所束缚。在这点上,CxImage类库是完全免费的。另外,在使用上述类库时,你会遇到重重麻烦。因为它们大部分是平台无关的,且用C语言写成,有的还夹杂着基本的C++ wrapper和成堆德编译选项的声明需要你去处理。而CxImage类库在这方面做得很好。
CxImage是一个可以用于MFC 的C++类,可以打开,保存,显示,转换各种格式的图像文件,比如BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K 等格式的文件。可以实现BMP<->JPG,PNG <>TIFF格式等等的转换。
......
详细可以到作者: Davide Pizzolato ,主页: http://www.xdp.it/ 或者到http://www.codeproject.com/bitmap/CXImage.asp 下载它的源文件和Demo例子
------------------------------------
在你的VC工程中使用这个类库,要对工程进行如下设置(Project Settings): |- C/C++ | |- Code Generation | | |- Use run-time library : Multithreaded DLL (must be the same for | | | all the linked libraries) //应该只要是多线程DLL即可,DEBUG的也行 | | |- Struct member alignment : must be the same for all the linked libraries | |- Precompiled headers : not using precompiled headers | |- Preprocessor | |- Additional Include Directories: ../cximage(该处填CxImage里的.h和.cpp文件拷贝并导入工程后所在的文件夹,
填写后在工程中include时编译器会查找该文件 夹,故include的文件无需路径) |- Link |- General |- Object/library modules: png.lib jpeg.lib zlib.lib tiff.lib jasper.lib cximage.lib (把需要的lib文件从CxImage中拷贝到工程中的lib文件
所在的目录) 并 且从CxImage中将xfile.h、ximacfg.h、ximadef.h、ximage.cpp、ximage.h、xiofile.h、 xmemfile.cpp、xmemfile.h拷贝到工
程文件夹下并将CxImage.h文件加入工程中即可。也可以设置vc6的"tools"中的 "include"路径.
注意:
1.原工程里没有包含对 raw/libdcr.lib 的库编译, 要自己添架上, 否则在编译 demo 时会缺少这个lib而出现链接错误
2.在所有工程里只设定了 debug/release/unicode debug/unicode release 而且是基于 share mfc dll的, 所以在编译时只能选译 Multithreaded dll, 但是如果你的工程是基于 Use MFC in static library 的话就会出现好多莫名链接错误
解决方法
(1)在原工程里新建编译设置(以 release_mt ) 为例
Build->Configurations->Add
名字为: release_mt
copy seting from: Win32 Release
OK
(2) 在Project->settings 里将每个工程都按如下设置
|- General |- |- Use MFC in static library |- C/C++ | |- Code Generation | | |- Use run-time library : Multithreaded |- Library | |- release_mt/xx.lib
这样再将新生成的 *.lib拷到自己的工程后就不会出现编译链接错误了! 如果要用成一个 unicode mt版方法跟上面一样,只是在 Preprocessor definitions 里加上: _UNICODE,UNICOD