Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1616994
  • 博文数量: 585
  • 博客积分: 14610
  • 博客等级: 上将
  • 技术积分: 7402
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-15 10:52
文章存档

2013年(5)

2012年(214)

2011年(56)

2010年(66)

2009年(44)

2008年(200)

分类: 网络与安全

2012-04-29 04:48:57

 CImageList类中读写图像数据
分类: C/C++ 技术资料 620人阅读 评论(0) 收藏 举报

CImageList类中读写图像数据

 

1CImageList类写入数据使用Add函数。

int Add(

   CBitmap* pbmImage,

   CBitmap* pbmMask

);

int Add(

   CBitmap* pbmImage,

   COLORREF crMask

);

int Add(

   HICON hIcon

);

举例:

   CImageList m_ImageList;// CImageList对象,存储图像

Int m_nImageWidth = 120;//目标图像宽度

Int m_nImageHeight = 60;// 目标图像高度

    CxImage imageTmp;// CxImage对象,原始图像

    CxImage imageTmpCrop;// CxImage对象,目标图像

    imageTmp.Load(C://1.BMP);//加载图像

    imageTmpCrop.Copy(imageTmp);

imageTmp.Resample2(m_nImageWidth,m_nImageHeight,CxImage::IM_BICUBIC2,CxImage::OM_REPEAT,&imageTmpCrop,true);//缩放图象

HANDLE hBitmapHandle  = imageTmpCrop.MakeBitmap();//将图像转换成句柄

    CBitmap *pBitmap;

    pBitmap=new CBitmap;

    pBitmap->Attach(hBitmapHandle);

    m_ImageList.Add(pBitmap,RGB(255,0,255));//将图像插入m_ImageList对象中

    if(pBitmap)

    {

        delete pBitmap;

    }

 

2CImageList类读取数据使用GetImageInfo函数。

BOOL GetImageInfo(

   int nImage,

   IMAGEINFO* pImageInfo

) const;

IMAGEINFO结构如下:

typedef struct _IMAGEINFO {

    HBITMAP hbmImage;//整个图象的HBITMAP句柄

    HBITMAP hbmMask;//图像掩码句柄

    int Unused1;

    int Unused2;

    RECT rcImage;//指定图像区域的范围,也就是从hbmImage中区域范围得到指定的图像

} IMAGEINFO, *LPIMAGEINFO;

注:如果想得到指定子图像数据,必须根据指定子图像区域rcImage从整个图像hbmImage中取出数据。

举例:

       CImageList m_ImageList;// CImageList对象,存储图像

    IMAGEINFO subImageInfo;

    Int nIndex = 0;

    m_ImageList.GetImageInfo(nIndex,&subImageInfo);//得到图像信息数据

    CxImage ciShow;//整个图像

    CxImage ciSubShow;//子图像

    ciShow.CreateFromHBITMAP(subImageInfo.hbmImage);//得到整个图像

    ciSubShow.Crop(subImageInfo.rcImage,& ciSubShow);//得到子图像

    ciSubShow.Save(C://2.BMP);//保存图像

 

CxImage是开源图像处理库,下载地址:http://www.codeproject.com/KB/graphics/cximage.aspx

阅读(525) | 评论(0) | 转发(0) |
0

上一篇:GDI+编程小结

下一篇:进程间通讯实现方法

给主人留下些什么吧!~~