CxImage

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

为什么使用CxImage

u 它是平台无关的

u 它是自由软件、免费的、开源的

u 支持多种平面格式:BMP、GIF、ICO、TGA、JPEG、PCX、PNG、TIFF、MNG、RAS等,还有更多!

u 功能强大:几何变换、图像处理、图像格式转换等。

u 使用简单:下面的入门教程会给你展示这一点。

 

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的源代码。在 codeproject没有账户的兄弟姐妹需要先注册一个哦,非常简单,几秒钟就可以了!该页面上有两个可以下载的东东,一个是CxImage的源代码,另一个是用CxImage类库开发的一个完整的Demo,你可以看一下这个Demo,就知道它的功能有多强大了!

 

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 ”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格式的功能!就是这么简单!

后记

如果各位XDJM按照我的步骤一步一步来,应该是肯定可以成功的!

本文中所述的是在VC++ 6.0中完成。而对于编译好的库,在VS2005中也是可以直接用的。如果上述同样的代码在VS2005中编译不能通过,你需要在工程属性中将字符集设置为Not Set,编译即可通过!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CXImage 是一个图像处理库,用于在 C++ 程序中处理和操作图像。它提供了一组功能丰富的图像处理函数,可以进行图像加载、保存、编辑以及各种图像处理操作,如裁剪、缩放、旋转、滤镜等等。 对于初学者而言,CXImage 的帮助文档是非常有用的。它详细介绍了库的各个功能和使用方法,并提供了丰富的示例代码。通过阅读文档,用户可以快速掌握 CXImage 的基本操作和常用功能。 首先,文档详细介绍了 CXImage 的安装和配置方法,帮助用户正确地集成 CXImage 到自己的项目中。然后,文档详细介绍了 CXImage 的加载和保存功能,包括如何从文件或内存中加载图像,以及如何保存图像到文件或内存。 接下来,文档介绍了各种图像处理操作的方法和参数。例如,文档详细说明了如何裁剪图像,如何进行缩放和旋转操作,如何添加文字和水印等等。对于每个操作,文档都提供了示例代码和图像效果示意图,方便用户理解和实践。 此外,文档还包含了 CXImage 的高级功能,如颜色空间转换、图像滤镜和特效等等。对于对图像处理有更高要求的用户,这些高级功能是非常有用的。文档详细介绍了这些功能的使用方法和效果,帮助用户更深入地了解和掌握 CXImage。 总之,CXImage 的帮助文档能够提供全面的指导和帮助,使用户能够快速上手并灵活运用这个强大的图像处理库。无论是初学者还是有一定经验的开发者,都可以从文档中找到所需的信息和解决方案,实现各种图像处理需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值