CxImage VC6 中的配置

网上已有相关很多配置的介绍这里介绍一个简单的方法:

 

首先看一下这篇文章:

 

文章一:

CxImage使用方法经验

CxImage使用方法经验

 (一)安装

使用前要先打开CxImgLib.dsw,进行编译成LIB库文件。随后的使用方法如下:

一、最复杂的方法,功能最好(占空间大):

"1.将以下几个目录拷贝到与“我新建的项目目录”同一级目录里,比如如下:

[CxImage]cximage.dsp

[jasper]jasper.dsp

[jbig]jbig.dsp

[jpeg]Jpeg.dsp

[mng]mng.dsp

[png]png.dsp

[raw]libdcr.dsp

[tiff]Tiff.dsp

[zlib]zlib.dsp

[我的项目]"

2.再将上面的dsp插入到我的项目的workspace中(add project)

3.VC中的菜单project\dependencies中,将我的项目depend on到其它项目(即其它项目打勾)

4.VC中的菜单project\setting..中,

 C/C++\- Code Generation\- Use run-time library : 都要选Multithreaded DLL

C/C++\Precompiled headers :选 not using precompiled headers

C/C++\Code Generation\ Additional Include Directories:  输入  ..\cximage"

5.VC中的菜单project\set active project,选上我的项目

6.在我的项目的代码中,要加上#include "ximage.h"

 

二、最简单的使用方法(占空间小)

1.将CXIMAGE项目中生成的所有*.lib文件(搜索一下),拷贝到我的项目的目录中:

./cximage.lib ./jasper.lib ./jbig.lib ./Jpeg.lib ./libdcr.lib ./mng.lib ./png.lib ./Tiff.lib ./zlib.lib

注意,这些lib的设置方式要和我的项目的设置方式一致,如都是release版本或者都是debug的版本

2.将这些lib文件insert到当前项目中即可

3. 将 cximage目录下面所有的*.h拷到“我的项目的目录”之下

4.VC中的菜单project\setting..中,

 C/C++\- Code Generation\- Use run-time library : 都要选Multithreaded DLL

C/C++\Precompiled headers :选 not using precompiled headers"

5.在我的项目的代码中,要加上#include "ximage.h"

 

这样就能在我的项目中正常使用了。

 

(二)使用

其它摸索出来的使用:

 

创建和删除类对象 CxImage* image;

每次要用到时,就image = new CxImage();

然后可以image->Load(....)等操作了

每次用完时,就delete image;   //不可以 delete *image;"

从文件加载图像到类中 image.Load("image.bmp", CXIMAGE_FORMAT_BMP);

保存图像到文件 image.Save("image.jpg",CXIMAGE_FORMAT_JPG)

判断类中的图像是否有效 "image.IsValid()

//如果类中没有图像,这个函数返回假;

//如果先加载一个图像成功,这个函数就返回真;然后再LOAD另一个图像不成功,这个函数返回值仍是真!因为类中的图像仍存在!

 

从内存加载图像到类中(解码) 

CxImage* image;

image = new CxImage();

image->Decode( (BYTE*)databuf, size, CXIMAGE_FORMAT_PNG );

delete image;

//databuf指向的内存地址中已经有一个图像(可以是从图片文件中读出来的),size是图像大小

//这个函数将这个图像装载到image类中"

 

将图像保存到内存中(编码) 

long size="0";

BYTE* buffer="0";

image.Encode(buffer,size,image_type);

...

image.FreeMemory(buffer);"

 

将类中的图像转成HBITMAP句柄 HBITMAP m_bitmap = image.MakeBitmap(hDC);

//需要一个HDC,可以是HDC hDC = ::GetDC(NULL); 得到的 (最后再::ReleaseDC(NULL,hDC);)

//也可以是CDC* hdc = m_picture.GetDC();  然后hdc->m_hDC就是HDC了(m_picture是一个PICTURE BOX)"

 

将类中的图像转成HANDLE HANDLE hDIB = image->CopyToHandle();

 

文章二:

 

首先对他的工程进行编译产生相应的.lib,然后

如果使用动态链接库cximagecrt.dll,那么:

#include   "ximage.h "
#pragma   comment(lib, "cximagecrt.lib ")

如果使用静态的方式连接,那么应该这样:
#include   "ximage.h "
#pragma   comment(lib, "cximage.lib ")
#pragma   comment(lib, "Jpeg.lib ")
#pragma   comment(lib, "png.lib   ")
#pragma   comment(lib, "zlib.lib   ")
#pragma   comment(lib, "tiff.lib   ")
#pragma   comment(lib, "jasper.lib   ")
//后边的这两个你可以包含也可以不包含。
//#pragma   comment(lib, "j2k.lib   ")
//#pragma   comment(lib, "jbig.lib   ")

使用:(示范性质)
m_imageChessboard.Load( "棋盘1.bmp ",CXIMAGE_FORMAT_BMP);
m_imageBg.Load( "bg800.jpg ",CXIMAGE_FORMAT_JPG);
   
m_imageChessboard.Draw(pDC-> GetSafeHdc(),m_xoffset,m_yoffset);//          
//-------------------------------------------------------------------------------------

 

最后我说一下我的方法:

1:下载cximage,我下载的是cximage701_full, 解压放到指定的地方,如 C盘;

2:编译 cximage701_full 中的 CxImgLib.dsw 工程;

3:建立一个 H 文件夹,搜索 cximage701_full 下的所有 .h 文件,复制到 H文件夹下;

      建立一个 LIB 文件夹,下面可以有 Debug 和 Release 两个文件夹, 搜索 cximage701_full 下的所有 .lib 文件,放到相应的文件下;

4:VC工程中: Tools -> Options -> Directories 添加: 头文件的H文件夹 和 LIB文件夹;

5:   

//如果使用动态链接库cximagecrt.dll,那么://建议;

#include 
#pragma   comment(lib, "cximagecrt.lib ") 


/*
//如果使用静态的方式连接,那么应该这样:
#include   "ximage.h "
#pragma   comment(lib, "cximage.lib ")
#pragma   comment(lib, "Jpeg.lib ")
#pragma   comment(lib, "png.lib   ")
#pragma   comment(lib, "zlib.lib   ")
#pragma   comment(lib, "tiff.lib   ")
#pragma   comment(lib, "jasper.lib   ")
//后边的这两个你可以包含也可以不包含。
//#pragma   comment(lib, "j2k.lib   ")
//#pragma   comment(lib, "jbig.lib   ") 

*/

6:简单示例:

 CxImage  m_imageChessboard;
 
 m_imageChessboard.Load( "t.bmp",CXIMAGE_FORMAT_BMP);
 
 if ( m_imageChessboard.IsValid())
 {
  m_imageChessboard.Draw( CClientDC(this), 0,0);//
 }

OK,这样就配置成功了,不需要修改VC中的编译的各种条件;

 

你可能感兴趣的:(CxImage VC6 中的配置)