用CxImage将BMP位图转换成JPEG格式

 

用CxImage将BMP位图转换成JPEG格式

1.从http://www.xdp.it/download.htm下载cximage600_full。

2.解压cximage600_full,在解压后的目录下有一个CxImageLib.dsw工作空间文件,使用VC++ 6.0 打开该工作空间文件。

3.找到CxImage项目中的ximacfg.h文件,将CXIMAGE_SUPPORT_BMP、CXIMAGE_SUPPORT_GIF、CXIMAGE_SUPPORT_JPG三项保持为1,其余都设置为0,设置好后如下所示,注意,即便我们用不到GIF格式的图片,这里也必须设置为1。

 

// CxImage supported formats

#define CXIMAGE_SUPPORT_BMP 1

#define CXIMAGE_SUPPORT_GIF 1

#define CXIMAGE_SUPPORT_JPG 1

#define CXIMAGE_SUPPORT_PNG 0

#define CXIMAGE_SUPPORT_ICO 0

#define CXIMAGE_SUPPORT_TIF 0

#define CXIMAGE_SUPPORT_TGA 0

#define CXIMAGE_SUPPORT_PCX 0

#define CXIMAGE_SUPPORT_WBMP 0

#define CXIMAGE_SUPPORT_WMF 0

 

#define CXIMAGE_SUPPORT_JP2 0

#define CXIMAGE_SUPPORT_JPC 0

#define CXIMAGE_SUPPORT_PGX 0

#define CXIMAGE_SUPPORT_PNM 0

#define CXIMAGE_SUPPORT_RAS 0

 

#define CXIMAGE_SUPPORT_JBG 0        

#define CXIMAGE_SUPPORT_MNG 0

#define CXIMAGE_SUPPORT_SKA 0

#define CXIMAGE_SUPPORT_RAW 0

 

将CxImage项目的编译模式设置为Debug,然后编译CxImage项目。

将jpeg项目的编译模式设置为Debug,然后编译jpeg项目。

新建一个文件夹,如mycximage。在该文件夹下新建一个header文件夹和一个lib文件夹。将CxImage下的所有头文件都拷贝到header文件夹下,将cximage600_full\CxImage\Debug和cximage600_full\jpeg\Debug下的生成的lib文件拷贝到lib文件夹下。至此,你已经拥有了CxImage类库。

4.新建立一个基于对话框的MFC应用程序,叫Test。

5. 将刚才我们建立好的mycximage文件夹拷贝到Test工程目录下。在菜单中选择Project->Settings...->C/C++->Preprocessor->Additional include directories,在这里添加header文件夹的路径,如下所示:

   mycximage/header

在菜单中选择Project->Add to Project->Files...  ,在跳出的文件对话框中选择存放在mycximage\lib文件夹下的cximage.lib和jpeg.lib。

6.在TestDlg.cpp文件顶部,加入以下代码:

#include  "ximage.h"

在对话框上添加一个按钮,在按钮的事件响应函数中添加以下代码:

 

CxImage image;

       // bmp -> jpg

       image.Load("image.bmp", CXIMAGE_FORMAT_BMP);

       if (image.IsValid())

       {

              if(!image.IsGrayScale()) image.IncreaseBpp(24);

              image.SetJpegQuality(99);

              image.Save("image.jpg",CXIMAGE_FORMAT_JPG);

       }

 

7.在Test项目的根目录下拷贝一个image.bmp,运行程序后,点击按钮,会在根目录下自动生成image.jpg。

你可能感兴趣的:(VC,图形图像)