CxImage

CxImage

CxImageC++实现的功能强大的、能处理多种文件格式的图像管理类。它能够简单快速的实现图像的导入、保存、显示和变换。

为什么使用CxImage

  1. 它是平台无关的。
  2. 它是自由软件、免费的、开源的。
  3. 支持多种平面格式:BMPGIFICOTGAJPEGPCXPNGTIFFMNGRAS等。
  4. 功能强大:几何变换、图像处理、图像格式转换等。
  5. 使用简单:下面的入门教程会给你展示这一点。

CxImage的功能

Constructors:构造函数

Initialization:初始化

File:文件操作,主要是编解码

Generic:图像基本变化

DSP:图像处理操作

Painting:绘图操作

Multiple Images:多帧图像操作

Transparency:透明层操作

Palette:调色板操作

Pixels:像素操作

Region Selection:区域选择操作

Alpha Channel Alpha:通道操作

Layers:图像层操作

Attributes:图像属性操作

Miscellaneous:杂项

CxImage使用入门

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->勾选你要编译的版本库。默认情况下是每个库都有四个版本,分别是DebugReleaseUnicode DebugUnicode 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

你可能感兴趣的:(机器视觉)