CBitmap 和 CImage 可以互换吗?

Posted

技术标签:

【中文标题】CBitmap 和 CImage 可以互换吗?【英文标题】:CBitmap and CImage interchangeable? 【发布时间】:2011-08-10 16:48:27 【问题描述】:

我想知道这样的事情是怎么做到的

CBitmap bmp;  
CImage img;

///

bmp=img;  

//use bmp here

在我的程序中,我必须在某些时候使用 CBitmap,但从一开始我就只使用 CImage。

【问题讨论】:

这个 SO 问题是另一种方式,但也许它会有所帮助:***.com/questions/2091203/load-a-cbitmap-dynamically 【参考方案1】:

CImage 是 GdiPlus,CBitmap 是 MFC。你可以这样做:

CBitmap bmp;  
CImage img;
bmp = CBitmap::FromHandle(img.Detach());

编辑:实际上CBitmap 有一个附件,所以这样做可能更有效:

bmp.Attach(img.Detach());

【讨论】:

他们都在一天结束时包装了 HBITMAP。众所周知,CImage 存在性能问题,因此如果存在问题,可能需要以不同的方式实现。

以上是关于CBitmap 和 CImage 可以互换吗?的主要内容,如果未能解决你的问题,请参考以下文章

opencv mat和CImage之间的转换

如何将 jpg 文件加载到 CBitmap (visual c++ 6.0) 中?

CImage类的使用问题!!

如何从 CRect 中的数据创建 CBitmap 对象?

在 C++ 上使用 CImg 类显示多个图像

CImage析构函数问题?