CXimage图像处理类的应用小结

问题:

       因为我学习的内容以及用OpenGL生成各种各样的纹理的时候总要用到各种各样的图像格式,对于并不熟悉各种各样的图形格式的我来说真是一个不小的困难,尤其是有的图像还可能有压缩,不过还好上上届学长给我留下了CXimage类这个好东西,下面就简要说说CXimage类的用法。

回答:

        首先简单介绍一个CXimage类的图像:CXimage类作者是Davide Pizzolato,一位电子工程师,我还去他的网站看了他的照片,留着大胡子,呵呵。言归正传了。CXimage类可以处理大多数图像,它的类结构为:    

   Cximage

           CxImageBMP         CxImageJBG          CxImageTGA  

           CxImageGIF          CxImageJPG          CxImageTIF

           CxImageICo           CxImagePNG

   CxFile

            CxIOFile               CxMeMFile

   CImageIterator

 CxImage的功能可以顺利读取多种图像文件啦!!并且效率很高。

下面简单介绍一种用法来说说它的功能:

动态链接Cxiamge类,首先加入CXiamge类的头文件,dll

在程序里面加入

#include"xImage.h"
#pragma comment(lib, "cximage.lib")

这两句话是头文件和预编译指令。声明一个CXimage类,载入和显示,提取像素的点的基本方法为:

使用Cximage类要首先阅读它的英文文档,因为我的英文不好,好多函数都看不懂什么意思?郁闷!先介绍下它的一些基本的用法吧。

 CxImage m_image; //声明一个Cximage类的对象

 m_image.Load("D1.gif",CXIMAGE_FORMAT_GIF);//前面那个是文件名,后面的一个是文件的类型名,

 CRect rect;
 GetClientRect(&rect);
 m_image.Draw(pDC->GetSafeHdc(),rect);//显示图片句柄,和显示区域

获的彩色图像的宽度和高度以及像素的数值

 int sizeX,sizeY;
 sizeX = image.GetWidth();
 sizeY = image.GetHeight();

 RGBQUAD col_image;

获得彩色图形的像素颜色值

 col_image = image.GetPixelColor(x,y,false);

获得灰度图像的像素值:

unsigned char pix=image.GetPixelGray(x,y) //这里注意与彩色图形的差别.

//创建图片

CxImage mergeImage;
  mergeImage.Create(6000, 6000, 24, CXIMAGE_FORMAT_PNG);///6000为长和宽

//保存图像

 m_mergeImage.Save("combine.png",CXIMAGE_FORMAT_PNG);

就想写这么多了,因为我主要用CXimage类来生成纹理,所以其他的功能还没有用过,基本上他应该还有图形的傅里叶变换,图像的旋转,拉伸,颜色融合等。这个只有到具体的应用的时候再一一研究了。这是一个很好的免费的类。

 

它的运行平台为

Microsoft Visual C++ 6.0 (static library, DLL and OCX builds) - Microsoft Visual C++ .NET 2003 - Borland C++ Builder version 3 and version 6 - Kdevelop 2.1 with gcc 2.96 (Linux)

 

它的下载网址:

http://www.xdp.it/projects.htm / 这个应该是作者的个人网站,(要改成国际模式上网才行呦)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值