- 注册时间
 - 2021-4-16
 
- 最后登录
 - 2024-3-2
 
- 在线时间
 - 1 小时
 
 
 
 
 
编程入门 
  
	- 龙马币
 - 38 
 
 
 
 
 | 
 
CImageList类中读写图像数据 
 
1、CImageList类写入数据使用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;
 
 - }
 
  复制代码 
2、CImageList类读取数据使用GetImageInfo函数。 
 
- BOOL GetImageInfo(
 
 - int nImage,
 
 - IMAGEINFO* pImageInfo
 
 - ) const;
 
 - IMAGEINFO结构如下:
 
 - typedef struct _IMAGEINFO{
 
 - HBITMAPhbmImage;//整个图象的HBITMAP句柄
 
 - HBITMAPhbmMask;//图像掩码句柄
 
 - intUnused1;
 
 - intUnused2;
 
 - RECTrcImage;//指定图像区域的范围,也就是从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 
 |   
 
 
 
 |