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 @   天子骄龙  阅读(177)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2020-07-25 多个.C文件--项目
2020-07-25 C--静态变量和静态函数static
2020-07-25 C--全局变量
2020-07-25 C--联合体union
点击右上角即可分享
微信分享提示

目录导航