强大的CImage类

这下有了CImage类,处理其他类型的图片不再寻找第三方类库了。加载到对话框背景的代码如下: 


//从资源里载入背景JPEG图片


HRSRC hRsrc=::FindResource(AfxGetResourceHandle(),
MAKEINTRESOURCE(IDR_JPG1),
_T("JPG"));
if(hRsrc!=NULL)
{
HGLOBAL hImgData=::LoadResource(AfxGetResourceHandle(),hRsrc);
if(hImgData==NULL)
{
::FreeResource(hImgData);
}
else
{
LPVOID lpVoid = ::LockResource(hImgData);
LPSTREAM pStream=NULL;
DWORD dwSize = ::SizeofResource(AfxGetResourceHandle(), hRsrc);
HGLOBAL hNew = ::GlobalAlloc(GHND, dwSize);
LPBYTE lpByte = (LPBYTE)::GlobalLock(hNew);
::memcpy(lpByte, lpVoid, dwSize);
GlobalUnlock(hNew);
HRESULT ht = CreateStreamOnHGlobal(hNew, TRUE, &pStream);
if( ht != S_OK )
{
//ASSERT( FALSE );
GlobalFree(hNew);
}
else
{
m_imgBK.Load(pStream);
GlobalFree(hNew);
}
::FreeResource(hImgData);
}
}
//m_imgBK.Load("hh.jpg"); //这个方法可以载入文件

处理消息OnEraseBkgnd,

还可以直接从文件加载: 
    CImage m_img; 
    HRESULT hr; 
    hr = m_img.Load(L"D:\\点歌\\歌星点歌.jpg");

时间: 2024-08-31 11:18:22

强大的CImage类的相关文章

用CImage类来显示PNG、JPG等图片

系统环境:Windows 7软件环境:Visual Studio 2008 SP1本次目的:实现VC单文档.对话框程序显示图片效果       CImage 是VC.NET中定义的一种MFC/ATL共享类,也是ATL的一种工具类,它提供增强型的(DDB和DIB)位图支持,可以装入.显示.转换和保存多种格式的图像文件,包括BMP.GIF.JPG.PNG.TIF等.CImage是一个独立的类,没有基类.(CImage类是基于GDI+的,从VC.NET起引进,VC 6.0中没有.)ATL (Activ

mfc-MFC中使用CImage类进行图片显,draw函数不显示图片

问题描述 MFC中使用CImage类进行图片显,draw函数不显示图片 代码: CImage image;//创建图片类 image.Load(_T("122.bmp"));//加载图片文件 CRect rect;//定义矩形类 int cx=image.GetWidth();//获取图片宽度 int cy=image.GetHeight();//获取图片高度 GetDlgItem(IDC_Picture)->GetWindowRect(&rect);//将窗口矩形选中到

图像处理-图像数据怎么从内存加载到CImage类,哪个函数可用?

问题描述 图像数据怎么从内存加载到CImage类,哪个函数可用? 比如说现在有个RGBQUAD类型的数组,怎么把里面的图象数据转换成CImage类图像,难道只有用指针循环取像素值然后赋值吗? 解决方案 RGBQUAD类型不知道你说的是什么,但是CImage其实就是内存中的一种. 解决方案二: CreateDIBitmap () ??

C#调用C++ dll CImage类

问题描述 小白一个,想把一个C++写的图像处理的程序通过DLL在C#里调用.有点疑惑的是C++程序里用CImage类进行图像的载入.处理.显示等操作,有哪些方法能够把处理后的图形数据在C#里读取并显示出来呢?(C#直接调用C++程序的显示方法试过了,是不行的)网上找了些方法,比如http://bbs.csdn.net/topics/390389519这里说的句柄,或者是http://blog.csdn.net/devcopper/article/details/12647663使用C#从内存里获

php 超级强大的数据库连接类

function connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $halt = TRUE, $dbcharset2 = '') {   $func = empty($pconnect) ? 'mysql_connect' : 'mysql_pconnect';   if(!$this->link = @$func($dbhost, $dbuser, $dbpw, 1)) {    $halt && $thi

c++-C++ string类 标准库 字符串

问题描述 C++ string类 标准库 字符串 C++标准库提供了一个功能强大的String类来实现字符串的操作,本系统创建一个功能类似"String类"的小型字符串类,以实现类似的字符处理功能求大神帮解决用C++ 解决方案 http://zhidao.baidu.com/link?url=75L1-WX-G-cxzSWytaJDkPNRF23cR08MvvIGyUSSG5ykmN9bh-A-0IFWPGBMKoMYkPJ0luXNApuvYXYT0TJQKa 解决方案二: <

基于VC.NET的GDI+编程之CImage

我们知道,Visual C++的CBitmap类和静态图片控件的功能是比较弱的,它只能显示出在资源中的图标.位图.光标以及图元文件的内容,而不像VB中的Image控件可以显示出绝大多数的外部图像文件(BMP.GIF.JPEG等).因此,想要在对话框或其他窗口中显示外部图像文件则只能借助于第三方提供的控件或代码.现在,MFC和ATL共享的新类CImage为图像处理提供了许多相应的方法,这使得Visual C++在图像方面的缺憾一去不复返了. CImage类概述 CImage是MFC和ATL共享的新

VC下加载多种格式图片的方法总结IPicture, CxImage, CImage(AtlImage), CPictureEx

尽管VC有提供相应的API和类来操作bmp位图.图标和(增强)元文件,但却不支持jpg.gif和png等格式的图片,而这几种格式却是常常要用到的.这里我给大家介绍两种办法来操作这些格式的图片. 1.用API OleLoadPicture来加载JPG.GIF格式的图片(注:不支持PNG格式,另外GIF只能加载第一帧,且不支持透明) OleLoadPicture 函数实际上创建了一个IPicture类型的COM接口对象,然后我们可以通过这个COM接口来操作图片(实际上你也可以用API OleCrea

框架-自己写一个 小型字符串类

问题描述 自己写一个 小型字符串类 C++标准库提供了一个功能强大的String类来实现字符串的操作,本系统创建一个功能类似"String类"的小型字符串类,以实现类似的字符处理功能. 希望大神能给个思路,基本框架. 解决方案 参考:http://wenku.baidu.com/link?url=7xK4vuZ4bKFHpVHQryrkeFQQQLg6TjxUDopT-g-IuRTuqmZTKaZO5vkDWPd9SUm7-LRsL-SliVNuGgPuaUmLyub7kLIwKzb3