CxImage的使用
来源:互联网 发布:药典软件 编辑:程序博客网 时间:2024/05/05 01:41
为什么使用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 ChannelAlpha通道操作
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 ”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格式的功能!就是这么简单!
后记
如果各位XDJM按照我的步骤一步一步来,应该是肯定可以成功的!
本文中所述的是在VC++ 6.0中完成。而对于编译好的库,在VS2005中也是可以直接用的。如果上述同样的代码在VS2005中编译不能通过,你需要在工程属性中将字符集设置为Not Set,编译即可通过!
- CxImage的使用
- CxImage的使用
- CxImage 的使用
- CxImage的使用
- CxImage的使用
- CXImage的基本使用
- CxImage的使用
- CxImage图像库的使用
- CxImage图像库的使用
- CxImage图像库的使用
- CxImage图像库的使用
- CXImage使用
- cximage 使用
- 使用CxImage库的初体验
- cximage的动态库不能使用问题
- [转载]使用CxImage库的初体验
- WINCE下使用CXIMAGE的問題
- 使用CxImage库的初体验
- oracle 查看 用户,用户权限,用户表空间,用户默认表空间。
- URLEncoder 编码的实现
- 几个QUEST spotlight 的下载地址及破解/注册码
- 本地调试WCF程序出现错误:AddressAccessDeniedException: HTTP could not register url
- vc遍历进程四种方法 详解
- CxImage的使用
- 一.游戏开发序章
- 在<img src="..." title="..."> 中使title的内容换行的方法
- java.net.SocketException: Too many open files 问题的解决办法
- Metasploit 使用简介
- 二.游戏就是动画
- 动态代理 Proxy InvocationHandler
- Fedora13 安装 MPlayer
- 宏名字不规范,与结构体的成员重名