CxImage是C++实现的功能强大的、能处理多种文件格式的图像管理类。它能够简单快速的实现图像的导入、保存、显示和变换。
Constructors:构造函数
Initialization:初始化
File:文件操作,主要是编解码
Generic:图像基本变化
DSP:图像处理操作
Painting:绘图操作
Multiple Images:多帧图像操作
Transparency:透明层操作
Palette:调色板操作
Pixels:像素操作
Region Selection:区域选择操作
Alpha Channel Alpha:通道操作
Layers:图像层操作
Attributes:图像属性操作
Miscellaneous:杂项
1. 在网址:http://www.codeproject.com/KB/graphics/cximage.aspx,下载CxImage的源代码。
2. 编译CxImage。解压源码包,在解压后的目录下有一个CxImageLib.dsw工作空间文件,使用VC++ 6.0 打开该工作空间文件。做以下事情:
① Project->Settings->C/C++,在Category下拉列表中选择Code Generation,将Use rum-time libary中选择MultiThread DLL.在 Category下拉列表中选择 Precompiled Headers中,选择第一项: Not using Precompiled headers.
② Build->Batch Build->勾选你要编译的版本库。默认情况下是每个库都有四个版本,分别是Debug、Release、Unicode Debug、Unicode Release.选择你想要编译的版本即可。
③ 等待几分钟,即可编译好。
④ 新建立一个文件夹,如mycximage。在该文件夹下新建一个header文件夹和一个lib文件夹。将CxImage下的所有头文件都拷贝到header文件夹下,将刚才所有生成的lib文件拷贝到lib文件夹下。至此,你已经拥有了CxImage类库。
⑤ 打开VC++6.0,新建立一个基于对话框的MFC应用程序,叫Test。我们来完成一个将BMP位图转换成JPEG格式的小程序。在对话框上画一个按钮,双击按钮,响应事件函数。
⑥ 将刚才我们建立好的mycximage文件夹拷贝到你的工程目录下。在TestDlg.cpp文件顶部,加入以下代码:
#include ”mycximage/header/ximage.h”
#pragma comment(lib, ”mycximage/lib/png.lib”)
#pragma comment(lib, ”mycximage/lib/libdcr.lib”)
#pragma comment(lib, ”mycximage/lib/jpeg.lib”)
#pragma comment(lib, ”mycximage/lib/zlib.lib”)
#pragma comment(lib, ”mycximage/lib/tiff.lib”)
#pragma comment(lib, ”mycximage/lib/jasper.lib”)
#pragma comment(lib, ”mycximage/lib/cximage.lib”)
#pragma comment(lib, ”mycximage/lib/mng.lib”)
在事件响应函数中添加一下代码:
CxImage image;
CString strFileName; // 图像文件名
CFileDialog dlg( TRUE, ”BMP”, NULL, OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY, ”所有图像文件(*.*)|*.*|BMP图像文件(*.BMP)|*.BMP|JPG格式图像(*.JPG)|*.JPG||”);
dlg.DoModal();
// 获取文件名
strFileName = dlg.GetFileName();
// 判断文件名是否为空
if (strFileName.GetLength() == 0)
{
return;
}
// 加载BMP位图
image.Load( strFileName.GetBuffer( strFileName.GetLength()), CXIMAGE_FORMAT_BMP );
// 判断图像是否有效
if (image.IsValid())
{
// 判断图像颜色数
if (!image.IsGrayScale())
image.IncreaseBpp( 24 );
// 设置Jpeg图像的质量
image.SetJpegQuality( 80 );
// 将位图转换成JPEG格式图像
image.Save(”export.jpg”,CXIMAGE_FORMAT_JPG);
}
已经完成了将指定位图转换成JPEG格式的功能!就是这么简单!
【转载】https://www.cnblogs.com/kex1n/archive/2010/01/16/1649059.html