在程序中使用JPEG等非BMP资源文件

在程序中使用JPEG等非BMP资源文件_第1张图片

 

GDI+ 中支持IStream加载图像,因此可以构建一个IStream流,实现从IStream加载图像

1: 在CXXXXApp::InitInstance() 中添加 AfxOleInit(); 

2: 资源编辑器中导入图片文件,如JPG,PNG等,并命名资源类型

3: 修改头文件.h 代码如下

4: 修改.cpp文件 代码如下

注意资源名需要与代码中的资源名对应 

 

 //.h #include <atlimage.h> protected: CImage m_BkImage;

 

//.cpp { HRSRC hrsrc = FindResource(NULL, MAKEINTRESOURCE(IDR_IMAGE1), _T("IMAGE") ); if(hrsrc) { HGLOBAL hglb = LoadResource(NULL, hrsrc); LPVOID lpsz = LockResource(hglb); ULARGE_INTEGER srcSize; srcSize.QuadPart = SizeofResource(NULL, hrsrc); IStream * pStream = NULL; CreateStreamOnHGlobal(NULL, TRUE, &pStream); if(pStream) { pStream->SetSize(srcSize); DWORD cbWritten = 0; pStream->Write(lpsz, srcSize.LowPart, &cbWritten); VERIFY( m_BkImage.Load(pStream) == S_OK ); pStream->Release(); } } }

你可能感兴趣的:(image,null,Integer)