MFC-Cimage类
CImage类,类本身封装了GDI+的使用环境,所以无需我们手动设置,简化了我们的操作
CBitmap 类只能处理BMP格式的图片,非常受限。
CImage可以处理JPGE GIF BMP PNG多种格式图片,扩展了图片处理功能 且能与CBitmap 进行转换
CImage是VC.NET中定义的一种MFC/ATL共享类,也是ATL的一种工具类,它提供增强型的(DDB和DIB)位图支持,可以装入、显示、转换和保存多种格式的图像文件,包括BMP、GIF、JPG、PNG、TIF等。CImage是一个独立的类,没有基类
CImage nImage; nImage.Load(_T("D:\\bb\\tu\\li1.jpg")); //载入文件图像 HBITMAP hBitmap = nImage.Detach(); //转换成HBITMAP //位图与CImage对象相分离【分离后nImage就不包含位图了】
mypicture.SetBitmap(hBitmap); //在picture控件中显示
CBitmap bmp; bmp.DeleteObject();
bmp.Attach(hBitmap); // HBITMAP转换为CBitmap对象 //将一个位图与Clmage对象相连接
CImage nImage; nImage.Load(_T("D:\\bb\\tu\\li1.jpg")); //载入文件图像 int height = nImage.GetHeight();//获取当前图像的高度 int width = nImage.GetWidth();//获取当前图像的宽度 HWND hWnd = GetSafeHwnd(); HDC hdc = ::GetDC(hWnd); BOOL b= nImage.Draw(hdc, 10, 10, width, height, 0, 0, width, height);//在窗口中画图像 /* 参数1:HDC 设备上下文的句柄 参数2:x坐标,逻辑单位,目标矩形的左上角 参数3:y坐标,逻辑单位,目标矩形的左上角 参数4:宽度,逻辑单位,目标矩形 参数5:高度,逻辑单位,目标矩形 参数6:x坐标,逻辑单位,源矩形的左上角 参数7:y坐标,逻辑单位,源矩形的左上角 参数8:宽度,在逻辑单位,源矩形 参数9:高度,在逻辑单位,源矩形 返回值:如果成功,则不为 0;否则为 0 */ int npix = nImage.GetBPP();//获取每像素位数的值
加载资源位图
hins = AfxGetInstanceHandle();
nImage.LoadFromResource(hins,IDB_BITMAP1);