为什么使用CxImage
u 使用简单:下面的入门教程会给你展示这一点。
构造函数
初始化
多帧图像操作
区域选择操作
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 打开该工作空间文件。做以下事情:
,在Category下拉列表中选择Code Generation,将Use rum-time libary中选择MultiThread DLL.在 Category下拉列表中选择 Precompiled Headers中,选择第一项: Not using Precompiled headers.
勾选你要编译的版本库。默认情况下是每个库都有四个版本,分别是Debug、Release、Unicode Debug、Unicode Release.选择你想要编译的版本即可。
#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;
// 图像文件名
所有图像文件(*.*)|*.*|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);
本文中所述的是在VC++ 6.0中完成。而对于编译好的库,在VS2005中也是可以直接用的。如果上述同样的代码在VS2005中编译不能通过,你需要在工程属性中将字符集设置为Not Set,编译即可通过!