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);

 

 

 

 

 

 

 

posted @ 2023-07-25 04:17  天子骄龙  阅读(253)  评论(0)    收藏  举报